在异步.直到(test, function, callback)测试函数没有被重复调用

In async.until(test, function, callback) test function is not getting invoked repetitively

本文关键字:函数 调用 测试 直到 异步 test callback function      更新时间:2023-09-26

当我使用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);
});