这确实相当令人困惑.首先,在promise terminology中,"已解决"状态并不等同于"已履行"--已解决的promise 可以用一个值来解决,这样它最终就会拒绝.然而,我不认为这句话是什么
沿着then()
链出现的可见对象总是被解析
甚至指的是."待解析"并不意味着启用对象的状态,这通常不为人所知.Promise确实有定义良好的状态,规范描述了Promise对象如何在这些状态之间转换.另一方面,除了他们的.then()
方法之外,Thenable objects没有任何特点,.then()
方法通过两个回调调用,可以做它想做的任何事情.因此,除非是promise ,否则使能对象没有区分未决、已实现和已拒绝的状态,我们也不会谈论它"正在被解析".
那么,这句话还意味着什么呢?我不知道作者的意图,但我可以猜到:
- 这可能意味着沿着链条出现的任何可用对象都是used as the argument to resolve a promise.这有点草率,因为这是promise ,是
resolve()
d with,而不是Thable对象.不过,拨打Promise.resolve(thenable)
可能会被简化为"解决问题".
- 这可能意味着result is extracted号.这里,动词"Resolve"的用法不是特定于它的Java脚本,而是在一般意义上--就像在"解方程"或"解析域名"中一样.不仅提供者
resolve()
a Promise
witha值,而且消费者正在解析promise to a值.这可能需要多个步骤,但最终我们将获得最终的结果值(或拒绝)-不是作为函数调用的返回值,而是作为连续传递样式的回调参数,但仍然是这样.在这个相同的意义上,我们可以将一个使能对象赋给它的结果值,而解析值就是链接的promise 得到解决的值.