2016-09-20 51 views
-1

嗨大家我无法使用setInterval函数。我在下面的每种情况下都将其设置为10秒,但是内部函数的执行速度与通常情况相同。我是新来的JavaScript可以有人告诉我我做错了什么?SetInterval函数不会在JavaScript代码中创建延迟

setInterval(function() { 
    if (tempArray.length == 4) { 

    var counter = 0; 
    var sum = 0; 
    //console.log("counting average..."); 

    for (var i = 0; i < tempArray.length; i++) { 
     sum += tempArray[i]; //add each temperature together 
     counter++; 
    } 
    } 

    var average = (sum/counter).toFixed(2); 
    setInterval(function() { 
    var avgString = "Data reveived, the average temperature is " + average + "*C"; 


    console.log(avgString); 
    io.emit('chat message', avgString); 
    }, 10000); 
}, 10000); 
+0

你是什么意思一样快,他们通常会?间隔意味着每X次执行一次。它不用于创建延迟。也许你想'setTimeout'? – James

回答

0

var tempArray = [1, 2, 3, 4, 5]; 
 
var counter = 0; 
 
var sum = 0; 
 
var average = 0; 
 
setInterval(function() { 
 
    //console.log("counting average..."); 
 

 
    tempArray = [ 
 
    Math.random() * 10, 
 
    Math.random() * 10, 
 
    Math.random() * 10, 
 
    Math.random() * 10, 
 
    Math.random() * 10 
 
    ]; 
 

 
    for (var i = 0; i < tempArray.length; i++) { 
 
    sum += tempArray[i]; //add each temperature together 
 
    counter++; 
 
    } 
 

 
    average = (sum/counter); 
 
    setTimeout(function() { 
 
    var avgString = "Data reveived, the average temperature is " + (sum/counter) + "*C"; 
 

 
    console.log(avgString); 
 
    }, 1 * 1000); 
 
}, 1 * 2000);