reduceを持つ配列に対して2つのコードスニペット(Parallel、Sequential)を単純なAsync関数で実行しています。私はPromise.allに電話するまで実行が開始されない理由を理解していません。これを行うにはこれが最善の方法ですか?Async/Await inside Array関数reduce
// Function returning promise with root value
async function proot(x) {
return new Promise((res,rej)=>{
setTimeout(() => {
console.log(x*x);
res(x*x)
},1000)
})
}
// Parallel Execution
var arr1 = [2,3,4].reduce((prev,next)=>{
return prev.concat(proot(next))
},[])
arr1 = await Promise.all(arr1)
// Sequential Execution
var arr2 = [2,3,4].reduce(async (prev,next)=>{
return (await prev).concat(await proot(next))
},Promise.resolve([]))
arr2 = await Promise.all([arr2])
はジャスト)第2の連続実行がPromise.allを(呼び出すことなく動作することを追加したいです。おそらく、これはjavascriptではなく、私のIDEとmochaと関係があります。 – ucipass