javascript - 如何打破 async.js 每个循环?

标签 javascript node.js loops callback

您好,我正在使用 async用于异步实现 for 循环的 node.js 模块。

我的问题是:如何中断循环执行并跳出循环?我尝试给 returnreturn false 但没有运气。

这里是示例代码:

async.until( 

    function() { return goal; },

    function(callback) {

        async.each(_rules, 

            function(rule,callback) {

                var outcome = true;
                .... some code ....
                if(changes){ 
                      console.log("hi");
                      return false;// HERE I NEED TO BREAK
                } 
                else
                callback();

            }, 

            function(err){  }
        );

        if (!changes || session.process)                
            goal = true;

        callback();
    },

    function(err){ callback(session); }     
);

最佳答案

async.until 重复调用函数,直到测试返回 true。所以 test 必须返回 true 才能退出循环。这与 async.whilst 相反,后者在测试评估为真时重复运行。

async.each 并行调用函数,因此返回的内容无关紧要。它不是一个可以中断的循环,而是一个遍历数组的迭代器。您停止使用 async.each 的条件应该在测试 async.until 并且您应该自己迭代规则。

关于javascript - 如何打破 async.js 每个循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14939050/

相关文章:

node.js - WebdriverIO : Dot ('.' ) is not recognized as an internal, 或外部命令

python - Python的N个嵌套for循环

r - 循环在 R 中创建多个矩阵(可能使用粘贴)

javascript - 仅获取变量的最新值

javascript - 你能模拟在事件运行之前按住的 shift 键吗

node.js - 从node.js在前台执行shell命令

php - MySQL 不会将 for 循环中的最后一项插入数据库

javascript - 代码点火器 : How to redirect to main page if there is no data to load again?

javascript - 如何将 "gulp-uncss"添加到 "gulp-usemin"

node.js - 如何在nodejs中找到item的路径?