我有一个简单的“异步”JS 函数:
function asyncFunc(i) {
setTimeout(function () {
console.log(i);
}, 1000);
}
如果我想在 for 循环中执行此 asyncFunc 5 次,即每秒记录 1 - 5 次,总共花费 5 秒。
1
2
3
4
5
我知道 jQuery 的 when().done() 可以做到这一点,但是如果我在没有 3rd 方 JS 库的环境中, 那么实现这一点的最简单和优雅的方法是什么?
实际上例如我想写一个 util 函数,它接受一个异步函数数组,并且这个 util 函数可以一个一个地执行传入的函数:
function execAsyncTasks([asyncTask1, asyncTask2, asyncTask3]) {
asyncTask1();
// Wait until asyncTask1 finished
asyncTask2();
// Wait until asyncTask2 finished
asyncTask3();
// Wait until asyncTask3 finished
}