捕获未处理的Promise错误
译者按: 通过监听 unhandledrejection 事件,可以捕获未处理的Promise错误。 原文: Tracking unhandled rejected Promises 译者: Fundebug 为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。 使用 Promise 编写异步代码时,使用 reject 来处理错误。有时,开发者通常会忽略这一点,导致一些错误没有得到处理。例如: function main() { asyncFunc() .then(···) .then(() => console.log('Done!')); } 由于没有使用 catch 方法捕获错误,当 asyncFunc() 函数 reject 时,抛出的错误则没有被处理。 这篇博客将分别介绍在浏览器与Node.js中,如何捕获那些未处理的Promise错误。 浏览器中未处理的Promise错误 一些浏览器(例如Chrome)能够捕获未处理的Promise错误。 unhandledrejection 监听 unhandledrejection 事件,即可捕获到未处理的Promise错误: window.addEventListener('unhandledrejection', event => ···); 这个事件是