24.8 Promise 总是异步的
一个 Promise 库完全可以决定计算结果是同步地(立即)传递给 Promise 接应器,还是异步地(在当前代码片段执行完之后)。但是, Promises/A+ 规范要求总是使用后一种执行模式。规范通过下列用于 then()
方法的必要条件陈述了这个问题:
onFulfilled
或onRejected
一定不能被调用,直到执行上下文堆栈仅包含平台代码。
这意味着你的代码可以依赖于代码执行的完整性语义( run-to-completion semantics )(如同第一部分讲解的),并且这种链式的 Promise 并不会阻碍其它任务的执行。