Javascript 立即解析for循环内部的异步等待承诺

Javascript 立即解析for循环内部的异步等待承诺,javascript,Javascript,我知道,如果我们在这样的for循环中有一个异步等待承诺,它将在每次迭代中等待解析procedure函数,在最后一次迭代之后,我们可以看到for循环下面的日志: for(let i = 0; i < guidePack.length; i++){ await Proceed(guidePack[i]); } console.log("after for loop"); // we will see this only after all of the Pro

我知道,如果我们在这样的for循环中有一个异步等待承诺,它将在每次迭代中等待解析
procedure
函数,在最后一次迭代之后,我们可以看到for循环下面的日志:

for(let i = 0; i < guidePack.length; i++){ 
      await Proceed(guidePack[i]);
}
console.log("after for loop"); // we will see this only after all of the Proceeds are resolved
for(设i=0;i
我不知道的是,是否有一种解决方案可以一次解决所有承诺,并将for循环留在下面的控制台日志中

让我们看看我所说的代码:

let guidePack=['A','B','C'];
让我们来解决这个问题;
指南();//启动进程
异步函数指南(){
StartCaptureKeyPress();
对于(设i=0;i{
ProceedResolved=resolve;//在执行ProceedResolved()时解析继续
});
}
函数演讲者(){
//请在6秒后继续
setTimeout(()=>ProceedResolved(),6000);
}
//捕获“输入键”按
函数StartCaptureKeyPress(){
文档。addEventListener('keydown',onKeyDownCapture);
函数onKeyDownCapture(事件){
如果(event.keyCode==13){
console.log('按Enter键')
document.removeEventListener('keydown',onKeyDownCapture);
event.preventDefault();
对于(设i=0;i<2;i++){ProceedResolved();}//在此处解析承诺
}
}

}
首先可以将所有这些方法的所有未解析结果存储在数组中,然后可以使用
Promise.all()
。它将解决此阵列中的所有承诺。如果此承诺中的任何一个将返回错误,则此数组的任何承诺都不会被解析

let results=[];
对于(设i=0;i
首先可以将所有这些方法的所有未解析结果存储在数组中,然后可以使用
Promise.all()
。它将解决此阵列中的所有承诺。如果此承诺中的任何一个将返回错误,则此数组的任何承诺都不会被解析

let results=[];
对于(设i=0;i
我们可以使用Promise.all或Promise.all函数。有关更多信息,请查看


我们可以使用Promise.all或Promise.all函数。有关更多信息,请查看