【发布时间】:2018-04-09 15:19:49
【问题描述】:
假设我在 Chrome 上。我这样做:
new Promise(function (resolve, reject) {
// ... do some work
resolve('foo');
}).then(doStuff).then(doMoreStuff);
调用“resolve”会引发异常吗?有什么 doStuff 或 doMoreStuff 可以做的,这会使“解决”抛出异常?
【问题讨论】:
-
没有。如果您调用 resolve,则承诺已解决,并且永远不会再次更改它的状态。因此,doStuff 或 doMoreStuff 中发生的任何事情都无法将状态从已解决变为已拒绝
-
doStuff和doMoreStuff直到 之后resolve被调用后才会执行。 javascript 中没有时间旅行:p -
我不确定'resolve'是否只是“设置一个标志并返回”,或者它是否“设置一个标志并运行任何等待设置该标志的工作”。
标签: javascript exception-handling promise