【问题标题】:In async.until(test, function, callback) test function is not getting invoked repetitively在 async.until(test, function, callback) 中,测试函数不会被重复调用
【发布时间】:2017-03-27 06:11:17
【问题描述】:

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

【问题讨论】:

标签: javascript callback async.js


【解决方案1】:

您只看到调用了一次测试函数的原因是因为您从未超过第一次迭代。为了从一个迭代移动到下一个迭代,您需要在传递给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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2021-02-11
    相关资源
    最近更新 更多