我正在用 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/