小编典典

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

javascript

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

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

根据规范,Promise可以是以下之一:

  • “解决”和“解决”
  • “解决”和“拒绝”
  • “待定”

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

  • 承诺解决了吗?

  • 如果是这样,承诺是否得到解决?

我知道我可以#then()用来安排Promise更改状态后异步执行的工作。我不是问怎么做。

这个问题具体是关于 对Promise状态的同步询问 。我该如何实现?


阅读 489

收藏
2020-05-01

共1个答案

小编典典

没有用于本机JavaScript承诺的此类同步检查API。 凭本地承诺是不可能做到这一点的。规范没有指定这种方法。

Userland库可以做到这一点,如果您要针对特定​​的引擎(例如v8)并有权访问 平台代码 (即可以在 core中
编写代码),则可以使用特定的工具(例如私有符号)来实现这一目标。 。这是非常具体的,但不是在用户领域。

2020-05-01