小编典典

如何同步确定 JavaScript Promise 的状态?

all

我有一个纯 JavaScript Promise(内置实现或 poly-fill):

var promise = new Promise(function (resolve, reject) { /* ... */ });

规范中,Promise 可以是以下之一:

  • “解决”和“解决”
  • “解决”和“拒绝”
  • ‘待办的’

我有一个用例,我希望同步询问 Promise 并确定:

  • Promise 解决了吗?

  • 如果是,Promise 解决了吗?

我知道我可以用它#then()来安排在 Promise
更改状态后异步执行的工作。我不是在问如何做到这一点。

这个问题专门关于 Promise 状态的同步询问 。我怎样才能做到这一点?


阅读 84

收藏
2022-06-23

共1个答案

小编典典

对于原生 JavaScript 承诺,不存在这样的同步检查 API。 使用原生承诺是不可能做到这一点的。规范没有指定这样的方法。

Userland 库可以做到这一点,如果您的目标是特定引擎(如 v8)并且可以访问 平台代码 (也就是说,您可以在 core
中编写代码),那么您可以使用特定工具(如私有符号)来实现这一点. 这是超级具体的,而不是在用户空间中。

2022-06-23