javascript - 堆栈跟踪错误处理程序和 Promise 错误处理程序

标签 javascript error-handling promise

我有错误处理函数:

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/

相关文章:

javascript - 检测浏览器对 html 文件输入元素的支持

javascript - 如何在 ASP.NET MVC 中组织外部 JavaScript 文件

java - Activiti Rest 异常处理

ruby - 如何使用 open-uri 处理 503 错误?

node.js - 如何运行 promise

javascript - 为什么 Promise 在 Node.js 中返回(解析)一个空对象?

javascript - 通过ID循环获取元素

javascript - Dojo FilteringSelect 仅触发一次 OnChange 事件

apache - 覆盖Apache中的HTTP 500内部服务器错误

javascript - 我做错了什么?