默认情况下,Promise.All([])函数返回一个基于数字的索引数组,该数组包含每个promise的结果.
var promises = [];
promises.push(myFuncAsync1()); //returns 1
promises.push(myFuncAsync1()); //returns 2
Promise.all(promises).then((results)=>{
//results = [0,1]
}
Run Code Online (Sandbox Code Playgroud)
使用Promise.all()返回命名结果索引的最佳方法是什么?
我尝试使用Map,但它以这种方式返回数组中的结果:
[key1, value1, key2, value2]
更新:
我的问题似乎不清楚,这就是为什么我不喜欢基于有序的索引:
results[42]可以通过下面的jib答案修复)var promises = [];
if(...)
promises.push(...);
else{
[...].forEach(... => {
if(...)
promises.push(...);
else
[...].forEach(... => {
promises.push(...);
});
});
}
Promise.all(promises).then((resultsArr)=>{
/*Here i am basically fucked without clear named results
that dont rely on promises' ordering in the array */
});
Run Code Online (Sandbox Code Playgroud)