我正在用打字稿写作,我有一个带有不同键的对象,每个键都映射到一个值。我想遍历键,并用它们的值做一个异步函数。我知道您可以在Promise.all中封装.map(以遍历数组),但是如何遍历for(让我进入对象)循环呢?我对允许所有键同时运行但等待所有完成的其他选项持开放态度。 编辑:我不想使用Object.keys,因为我不想多次遍历整个对象键(Object.keys遍历对象键一次,然后我必须遍历Promise.all )
答案 0 :(得分:1)
Object.entries()可以获取键和值。收集每个键值对的承诺,并用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)