node.js - 如何使用 Promise.all 迭代对象键

标签 node.js typescript promise

我正在用 typescript 编写,我有一个具有不同键的对象,每个键映射到一个值。我想迭代键并使用它们的值执行异步函数。我知道你可以在 Promise.all 中包含 .map (以迭代数组),但是如何迭代 for (let i in object)循环呢?我愿意接受其他选项,允许所有键同时运行,但等待所有键完成。 编辑:我不想使用 Object.keys,因为我不想多次迭代整个对象键(Object.keys 迭代对象键一次,然后我将不得不迭代 Promise.all)

最佳答案

Object.entries()可以获取键和值。收集每个键值对的 promise ,并使用 all() 实现它们。

function asyncFunctionWithKeysAndValuesOf(object) {
  let promises = Object.entries(object).map(keyValue => somePromiseReturningFn(keyValue[0], keyValue[1]))
  return Promise.all(promises)
}

如果您对多次迭代对象很敏感......

  let promises = []
  for (key in object) {
    promises.push(somePromiseReturningFn(key, object[key]))
  }
  return Promise.all(promises)

关于node.js - 如何使用 Promise.all 迭代对象键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58849354/

相关文章:

node.js - 如何查看从node.js发送到服务器的请求?

node.js - 无服务器 Node TypeScript 应用程序无法导入模块

JavaScript/promise,对共享点的多个异步调用

javascript - Nodejs同步for循环

javascript - AngularJS 和 Q.fcall

javascript - Meteor.call 回调函数返回未定义

javascript - 在构造方法中初始化 Promises 类字段

javascript - 在 TypeScript 中引用推断类型

node.js - 使用 typeorm 创建通用存储库

javascript - 在 Jade 中使用 JQuery 条件不起作用