function f() {
return new Promise((resolve, reject) => {
setTimeout(()=>{
reject(0)
},1000)
})
}
async function main() {
let func=[];
try {
func.push(f());
for (let i of [1,2,3]){
await f();
}
await Promise.all(func);
}catch (e) {
console.log(e);
}
}
main();
为什么这样会报Unhandled promise rejection,难道f()在放进func时就执行了吗,小白求解
因为你func.push(f()) 那么当然会执行f() 你不想执行 那么func.push(f)
你执行完因为reject所以抛异常了
如果你想catch,用f().catch()