24.12 调试 Promise
调试 Promise 的工具逐渐在浏览器中出现了。让我们看下最新的谷歌浏览器提供了什么。下面是一个 HTML 文件的一部分,展示了使用 Promise 的两个常见问题:
<body>
<script>
// Unhandled rejection
Promise.reject(new Error())
.then(function (x) { return 'a'})
.then(function (x) { return 'b'})
// Unsettled Promise
new Promise(function () {});
</script>
</body>
第一段 JavaScript 代码中,没有处理异常情况。第二段 JavaScript 代码中, Promise 没有变为稳定状态。谷歌浏览器的开发者工具会帮助处理这两种问题。
未处理的异常将会被打印在控制台里:
同时也会在监视器的“ source ”标签页下高亮:
最后,有一个特殊的用于 Promise 的监视器会记录 web 页面创建的所有 Promise 。除了记录其它东西,还会记录:
- 哪些 Promise 完成了(在第一列中显示绿色圆点),哪些失败了(红色圆点),哪些还在执行中(灰色圆点)
- Promise 是如何连接的