我有一個簡單的「異步」 JS函數執行異步功能之一:JavaScript的:由一個
function asyncFunc(i) {
setTimeout(function() {
console.log(i);
}, 1000);
}
,如果我想在for循環中執行該asyncFunc 5倍,即日誌1 - 5每秒,總共花費5秒鐘。
我知道jQuery的時候()()完成可以做到這一點但是如果我在一個環境NO第三方JS庫,什麼是最簡單最優雅的方式來實現這個?
其實例如我想要寫它接受的異步函數的陣列的util的功能,並且該util的功能可以在功能逐個執行傳遞:
function execAsyncTasks([asyncTask1, asyncTask2, asyncTask3]) {
asyncTask1();
// Wait until asyncTask1 finished
asyncTask2();
// Wait until asyncTask2 finished
asyncTask3();
// Wait until asyncTask3 finished
}
可以給你加您在超時時調用的異步方法的回調參數! – silly
你的帖子的開頭提示你想要「時間安排」,後面的例子表明你只是想一個接一個地執行任務?! – EricG
如果每個任務都必須等到前一個任務完成,那麼它們不是「獨立」的異步任務。你可以用普通的'for'和「異步地」將它們「包裝」起來,使用已經準備好的異步方法運行「包裝器」。 – Passerby