堆栈跟踪错误处理程序和Promises错误处理程序

时间:2016-05-05 08:10:48

标签: javascript error-handling promise

我有错误处理函数:

function onError(message, source, lineno, colno, error) { sendRequestToSendMail(arguments) }
window.onerror = onError

我还有使用promises的异步任务,我希望在其中捕获异常。我不需要重复自己:

doSomething1()
    .then(doSomething2(), onError)
    .then(doSomething3(), onError)
    .then(doSomething4(), onError)

如何为所有promises(如window.onError)实现全局错误处理程序?

1 个答案:

答案 0 :(得分:1)

这不是一个全局错误处理程序(这对我来说听起来不是一个好主意),但是由于错误是通过promise链传播的,所以你可以通过添加一个来缩短你的代码(并摆脱重复)。对您的连锁店发表最终.catch()声明:

doSomething1()
    .then(doSomething2())
    .then(doSomething3())
    .then(doSomething4())
    .catch(onError)

这将抓住任何doSomething*函数抛出的任何拒绝。