我最近发现自己处于一种非常难以调试的状态。 想象一下以下非常简单的情况:
function somePromise() {
return new Promise((resolve, reject) => {
SomeModule.someMethod();
AnotherModule.somePromise().then(resolve).catch(reject);
});
}
从未调用Resolve,但我在控制台中没有收到错误 - 这很难调试!
事实证明我忘了要求SomeModule
。在要求之后,代码按预期工作。
有没有办法通过错误处理程序自动尝试/捕获我的代码中的每个Promise?我不想用try / catch块来包围我的Promises的主体,以便能够在将来更容易地找到这样的错误。
提前感谢您的意见!
答案 0 :(得分:3)
有没有办法通过错误处理程序自动尝试/捕获我的代码中的每个Promise?
这已由Promise
构造函数隐式完成。如果回调同步抛出异常,则承诺将拒绝。
但是,你真的应该避免使用Promise
constructor antipattern!使用
function somePromise() {
SomeModule.someMethod();
return AnotherModule.somePromise();
}