我有错误处理函数:
function onError(message, source, lineno, colno, error) { sendRequestToSendMail(arguments) }
window.onerror = onError
我还有带有 promise 的异步任务,我想捕获其中的异常。我不需要重复自己:
doSomething1()
.then(doSomething2(), onError)
.then(doSomething3(), onError)
.then(doSomething4(), onError)
如何为所有 Promise 实现全局错误处理程序(如 window.onError)?
最佳答案
它不是一个全局错误处理程序(这对我来说听起来不是一个好主意),但由于错误是通过 promise 链传播的,因此您可以通过添加一个来缩短代码(并消除重复)链的最终 .catch()
语句:
doSomething1()
.then(doSomething2())
.then(doSomething3())
.then(doSomething4())
.catch(onError)
这将捕获任何 doSomething*
函数抛出的任何拒绝。
关于javascript - 堆栈跟踪错误处理程序和 Promise 错误处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37045608/