当我在Node(由Babel编译)中运行此函数时:
(async function test2(){
let pr = await new Promise(function (resolve, reject){
setTimeout(()=>reject(new Error('reason')))
});
try {
await pr;
} catch (e) {
console.log(e);
}
})();
您可以在Babel REPL中运行代码。在Babel REPL和Node中都没有捕获到我的错误(你可以在Babel REPL的浏览器开发工具中看到它)。当我开始在Node中监听未处理的拒绝时(process.on(' unhandledRejection' ...)我至少得到了一些通知:
unhandled at Promise {
_c: [],
_a: [],
_s: 2,
_d: true,
_v: [Error: reason],
_h: 0,
_n: false } because of [Error: reason]
我想从try / catch中捕获这些错误 - 或者除了process.on之外的任何其他方式(' unhandledRejection',...)。我怎样才能做到这一点?