我最近发现自己处于一种很难调试的情况。
想象以下非常简单的情况:

function somePromise() {
    return new Promise((resolve, reject) => {
        SomeModule.someMethod();
        AnotherModule.somePromise().then(resolve).catch(reject);
    });
}

从未调用 Resolve,但我没有在控制台中收到错误消息 - 这很难调试!
原来我忘了要求 SomeModule 。在要求之后,代码按预期工作。

有没有办法使用错误处理程序自动尝试/捕获我的代码中的每个 Promise?我不想用 try/catch 块包围我的 Promise 的主体,只是为了将来能够更容易地找到此类错误。

在此先感谢您的意见!

最佳答案



这已经由 Promise 构造函数隐式完成了。如果回调同步抛出异常,promise 将被拒绝。

但是,您确实应该避免使用 Promise constructor antipattern !用

function somePromise() {
    SomeModule.someMethod();
    return AnotherModule.somePromise();
}

关于javascript - NodeJS : Auto-catch errors in Promise and call reject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42000561/

10-11 01:00