异步/等待节点中未捕获到错误

时间:2016-06-19 08:52:31

标签: node.js asynchronous error-handling async-await babeljs

当我在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',...)。我怎样才能做到这一点?

0 个答案:

没有答案