我有一段時間暫停執行異步JS循環的問題。暫停JavaScript異步循環一段時間
我需要暫停,例如每45次迭代,所以我想出了一個簡單的代碼來幫助我確定當它發生:
if (i > 1)
{
var numba = i/45;
if (isInteger(numba))
{
document.write('TIMEOUT START <br>');
setTimeout(function(){document.write('TIMEOUT END<br>');}, 540000);
}
}
function isInteger(x)
{
return x % 1 === 0;
}
我的異步循環代碼如下:
var num = 150;
var asyncLoop = function(o)
{
var i=0;
var loop = function(){
i++;
if(i==o.length){o.callback(); return;}
o.functionToLoop(loop, i);
}
loop();//init
}
asyncLoop({
length : num,
functionToLoop : function(loop, i)
{
if (i==0){}
loop();
},
callback : function(){
}
});
首先,我試着將這段代碼放在循環函數中暫停循環,但是這並不起作用,現在我部分理解了爲什麼。然而,我嘗試過的其他方式也失敗了。 有誰知道如何實現我想要做的?
在此先感謝
爲什麼要暫停? – Joe
2段代碼似乎沒有關係。另外,asyncLoop不是一個循環,而是遞歸調用它自己。 – tcooc
這是因爲循環獲取我的帖子的Facebook上的數據(通過graph.facebook.com),並且當我有大約1k個帖子來查詢時,似乎在300個URL通過graph.facebook.com運行後,我需要它「冷卻」幾分鐘 –