当我使用 async.until() 函数时,我观察到测试虽然返回 false,但并未被重复调用。因此,不会调用函数来执行下一个任务。
var resultReceived = false;
async.until(function(){
console.log("Checking result : "+resultReceived);
return resultReceived;
}, function(callback){
try{
//do something
resultReceived = true;
}catch(err){
resultReceived = false;
}
}, function(result){
console.log("====================");
console.log(result);
callback(result);
});
最佳答案
您只看到测试函数被调用一次的原因是因为您从未超越第一次迭代。为了从一次迭代移动到下一次迭代,您需要在传递给 async.until
的第二个函数中调用 callback
。
这是一个稍作修改的示例,它将显示每次迭代时调用的测试函数:
var iteration = 0;
async.until(function(){
console.log("Checking iteration : " + iteration);
return iteration > 5;
}, function(callback){
console.log(++iteration);
setTimeout(callback, 1000);
}, function(result){
console.log("====================");
console.log(result);
});
关于javascript - 在 async.until(test, function,callback) 中,测试函数不会被重复调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574641/