2016-09-20 36 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);