承诺的状态 - 已解决与已实现 - thenable 对象是否总是已解决?

jwa*_*jwa 3 javascript asynchronous promise

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#description

\n
\n

沿链出现的 thenable 对象then()始终会被解析\n\xe2\x80\x94,onFulfilled处理程序永远不会接收到 thenable 对象,并且任何一个处理程序返回的任何\nthenable 始终会在传递到下一个处理程序之前被解析。这是因为在构造新的 Promise 时,传递resolve的 和reject函数会被executor保存,并且当当前 Promise 结算时,将使用履行值或拒绝原因调用相应的函数。解析逻辑来自构造函数传递的解析器函数> Promise()

\n
\n

据我了解,承诺并不总是能得到解决,也可能被拒绝

\n

这个文档是什么意思,有错误吗?

\n

You*_*saf 5

我认为您的困惑在于“已解决”一词的使用。“已解决”的 Promise 或 thenable 并不总是意味着它已经实现。

\n

“已解决”的 Promise 可以被解决(拒绝或实现)或锁定在另一个 Promise 上,并等待另一个 Promise 解决,然后再以相同的实现或拒绝值解决自身。将一个 Promise 锁定到另一个 Promise 也称为一个 Promise解析为另一个 Promise。

\n

来自MDN - Promise #Description

\n
\n

您还会听到与 Promise \xe2\x80\x94 一起使用的“resolved”一词,这意味着该Promise 已解决或“锁定”以匹配另一个 Promise 的最终状态,并且进一步解决或拒绝它没有任何效果。....通俗地说,“已解决”的承诺通常等同于“已履行”的承诺,但如“状态和命运”中所示,已解决的承诺也可以等待或拒绝

\n
\n

(强调我的)

\n