在一些JS文档中, 涉及到 promise 对象时, 往往会用到 resolved
这个这个术语来描述对象状态. 实际上, 在标准中, promise 对象是没有 resolved
状态的.
promise 对象只有三种状态分别是 "pending"
, "fulfilled"
和 "rejected"
. 其中后两个状态也统称"settled"
. 一旦promise 对象完成生产, 就会调用resolve(value)
或者 reject(error)
将状态置于settled
, 然后会执行消费者的代码.
那么, 术语 resolved
究竟是描述什么的呢? 文档里给出的解释是 "Fate"
, 这很难翻译,相当于用另一个术语来解释术语. 不过,我们知道 "Fate"
不等同于 状态"State"
.
我理解的 resolved
, 是生产者已经完成了生产, 但其状态未必是"fulfilled"
, 因为它的消费者的handler还有可能返回promise, 其状态跟这个新promise是一致的.

网友评论