2016-09-20 7 views
-1

こんにちは皆setInterval関数を使用するのに問題があります。以下の各状況で10秒に設定していますが、内部の関数は通常どおり速く実行されます。私は誰かが私が間違ってやっていることを教えてくれるのだろうか?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);

関連する問題