我最近发现自己处于一种很难调试的情况。
想象以下非常简单的情况:
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/