在node.js中管理嵌套的异步foreach循环

棕色母牛

传统上,在同步语言中,诸如有条件地退出两个嵌套的foreach循环之类的任务将很容易,例如:

return new Promise(resolve, reject){
  AnArray.forEach(anElement){
      ACONSTANTARRAY.forEach(ACONSTANTELEMENT){
          if(anElement === ACONSTANTELEMENT){
              resolve(bar);
          }
      }
  }
  resolve(foo);
}

但是,由于foo将被立即解决,处理这种情况的最佳方法是什么?我需要将其转换为多个Promise.all(array.map(function(){})呼叫吗?看起来丑陋,过于复杂且难以理解。

爆炸药

抱歉,您不喜欢它,但是如果您需要等待所有异步操作完成再继续操作,则必须使用Promise.all

return Promise.all(AnArray.map(anElement =>
   new Promise((resolve, reject) => {
      if (ACONSTANTARRAY.find(ACONSTANTELEMENT => ACONSTANTELEMENT === anElement)) {
        return resolve(bar);
      }
      reject(foo);
   });
);

上面虽然没有做任何异步的事情。请记住,有许多异步库可以为您创建承诺,因此您甚至根本不需要做new Promise您仍然需要使用Promise.all,但是如果您需要等待多个promise解决。

您还可以考虑使用类似co基于生成器的控制流之类的方法,该方法可以为您处理承诺数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js中的foreach异步功能

来自分类Dev

在node.js中异步循环

来自分类Dev

Node.js:异步嵌套回调在for循环的每次迭代中均不起作用

来自分类Dev

如何在 node.js 中的异步和条件循环中执行嵌套查询

来自分类Dev

在Node.js中异步foreach和猫鼬

来自分类Dev

如何在Node.JS中编写异步While循环

来自分类Dev

循环以在Node.js Sequelize中获取异步数据

来自分类Dev

了解Node.js异步性-循环还是嵌套回调

来自分类Dev

在Node.js中为JSON对象创建嵌套循环

来自分类Dev

Node.js For循环异步请求

来自分类Dev

在Node.js(异步)中的循环和回调中寻找正确的模式

来自分类Dev

Node.js中的循环异步函数中的未定义变量

来自分类Dev

javascript-如何等待node.js中的异步循环

来自分类Dev

Node.js中的异步函数

来自分类Dev

Node.js中的异步混乱

来自分类Dev

在Node.js中运行异步过程

来自分类Dev

Node.js中的异步混乱

来自分类Dev

如何管理Node.js异步变量作用域?

来自分类Dev

在不使用异步库帮助器类的情况下在node.js中异步进行for循环

来自分类Dev

使用forEach时,与node.js异步流混淆。

来自分类Dev

使用async.forEach和异步操作的Node.js

来自分类Dev

使用循环在Node.js中进行异步作业调度

来自分类Dev

Node.js:如何使用异步模块执行无限循环

来自分类Dev

如何在for循环内编写node.js异步?

来自分类Dev

使用Node.js异步请求在Redis中进行循环

来自分类Dev

异步Node.js循环中的变量作用域

来自分类Dev

使用Node.js异步请求在Redis中进行循环

来自分类Dev

与Mocha测试框架一起嵌套在Node.js中的for循环中

来自分类Dev

嵌套循环将Node.js中的每个记录序列化

Related 相关文章

热门标签

归档