Javascript 新承诺中的错误问题

Javascript 新承诺中的错误问题,javascript,Javascript,试试看{ 控制台日志(1) 新承诺(()=>{ 控制台日志(2) 抛出新错误(“承诺错误”) }) 控制台日志(3) }捕获(e){ log('hello error'); }Promise构造函数捕获错误并将其转换为拒绝的Promise。由于相同的原因,您无法捕获它。此处的第二个try catch未捕获任何错误: 函数tryFunc(f){ 尝试{f()}捕获(e){} } 试一试{ 控制台日志(1); tryFunc(()=>{ 控制台日志(2); 抛出新错误(); }); 控制台日志(3

试试看{
控制台日志(1)
新承诺(()=>{
控制台日志(2)
抛出新错误(“承诺错误”)
})
控制台日志(3)
}捕获(e){
log('hello error');

}
Promise构造函数捕获错误并将其转换为拒绝的Promise。由于相同的原因,您无法捕获它。此处的第二个
try catch
未捕获任何错误:

函数tryFunc(f){
尝试{f()}捕获(e){}
}
试一试{
控制台日志(1);
tryFunc(()=>{
控制台日志(2);
抛出新错误();
});
控制台日志(3);
}捕获(e){
log('hello error');

}
承诺以异步方式解析,因此它不会等待承诺解析,并在承诺解析后通过错误打印3

将一个
catch()
链接到您的承诺,您将看到为什么外部try/catch没有看到承诺构造函数中抛出的错误

Promise构造函数有自己的内部try/catch

试试看{
控制台日志(1)
新承诺(()=>{
控制台日志(2)
抛出新错误(“承诺错误”)
}).catch(({message})=>console.log(message));
控制台日志(3)
}捕获(e){
log('hello error');

}
promise构造函数回调中的所有错误都会得到处理并拒绝该承诺。您到底希望发生什么?我不太清楚这个问题。。。