我是JavaScript新手,我無法正確使用setInterval()函數。在循環js中調用多個setInterval()函數
基本上我想調用一個函數在不同的給定的時間間隔爲我有兩個列表中的不同參數。
我有一個叫myfunction的函數。我有一個名爲myparam的列表,其中包含我想要傳遞此函數的所有變量。最後,我有一個名爲myfrequency的列表,這是我希望每次調用myfunction和myparam中給定的參數之間的毫秒時間。我正在嘗試類似這樣的東西,但它不起作用:
for(i=0;i<myparam.length();i++;){
setInterval(function(){myfunction(myparam[i]);},myfrequency[i]);
}
上述代碼的結果是它僅適用於最後一個索引。 myfunction會以正確的參數在正確的時間間隔被調用,僅用於myparam中的最後一個值。
爲什麼會發生這種情況?我認爲setInterval()以不正確的間隔調用函數嗎?
http://stackoverflow.com/questions/2728278/what-is-a-practical-use-for-a-closure-in-javascript閱讀的答案,其中一個顯示您的具體問題 –
非常普遍的問題。發生什麼事情是,當你的setInterval觸發時,循環已經完成,所以'i'指向最後一個元素 – david
@david確實增加了延遲修復?我嘗試每次調用setTimeout()都會添加一個延遲setInterval,但現在它根本不工作。 – Saxman13