javascript - 在 async.until(test, function,callback) 中,测试函数不会被重复调用

标签 javascript callback async.js

当我使用 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/

相关文章:

listview - 使用回调删除 ListView 项的Flutter/Dart Issue

javascript - 第一个函数卡在 async.js 中

javascript - 缓存异步函数的结果,并将其传递给 Async.js 中的下一个函数

javascript - 如何访问 async.parallel 的结果?

javascript - 在 if 语句上使用 Promises

javascript - 未定义不是一个函数

javascript - AngularJS 数据绑定(bind)不适用于附加到 DOM 的 `<div>`

javascript - 谷歌SDK返回403 `User Rate Limit Exceeded`

actionscript-3 - AS3 - 我可以访问调用我的对象(或函数)吗?

javascript - JSON.parse - 一次设置reviver