未看书导致的一个坑
某日被书中一段代码误导
1 | var promise = new Promise(function (resolve, reject) { |
由于前面还有这样一段话
如果 Promise 状态已经变成 Resolved,再抛出错误是无效的。
当时看到这,思索了许久,为什么已经 resolve 了这个 ERROR 还是可以往外抛出呢?
后面发现,settimeout 是一个异步函数,throw 会在下一轮事件循环开始时抛出,所以无论是否 resolve,这个 ERROR 都是会抛出的。