如何在出现特定情况时退出async.forEach循环+节点

我正在为每个循环的节点jsasynchronous工作。 当某些情况发生时,我想退出asynchronous循环。 我试着callbackcallback。 但它似乎不工作。 我如何解决这个问题? 是否有可能退出asynchronous循环。

async.forEach(usertype.permissions, function (permission, cb) { if (usertype.type === 'super_admin') { console.log('super admin') flag = 1; // here i want to exit from the loop //return cb(); } if (permission.description === 'Can this use?' && permission.default_value.indexOf('YES') > -1) { flag = 1; return cb(); } else { if (permission.description === 'Ca?' && permission.default_value.indexOf('YES') > -1) { flag = 1; console.log('permission to advance') return cb(); } else { cb(); } } }, function () { // The code i want to execute after exit from the loop }) 

  • asynchronous:服务器启动后连接到MongoDB
  • Nodejs:mysql:只能查询最多两次
  • 这真的是一个asynchronous“类似”的循环?
  • 带asynchronous函数的for循环耗尽内存
  • 我如何使用callback访问nodejs中的mongodb计数结果?
  • Node.js:fs.readdir不会返回由fs.writeFile写入的文件
  • node.js async.series是如何工作的?
  • 如何在Restify中间件中捕获未处理的Promise拒绝?
  • async的各种function将“退出提前”,如果你传递一个值的callback,通常是一个Error

     async.forEach(usertype.permissions, function (permission, cb) { if(someCondition) return cb(new Error('I want to exit here')); }, function(err) { // Finished }); 

    但是,除非你的permission对象的getter是asynchronous的,我不知道你为什么使用asynchronous库。