var i = 0;
async.whilst(
function(){ return i < 5; },
function(cb) {
setTimeout(function() {
console.log(i++);
cb();
}, 1000);
},
function(err) { console.err("we encountered an error", err); }
);
我在另一个堆栈溢出帖子上看到了这个代码,并且对这个异步调用的语法感到有些困惑。在async中。虽然有一个带参数cb:function(cb)的函数。然后在调用setTimeOut调用cb()之后的函数内部。我的问题是cb()回调的功能是什么?它只是简单地呼唤:
function(){ return i < 5; }
还是再次调用函数(cb)?
答案 0 :(得分:1)
它回调async
的内部函数,它将停止循环(如果cb()
传递了错误)或随后将开始循环的另一次迭代。
如果查看the implementation,next
变量是传递给迭代器函数的回调函数。