JavaScript Promiseの状態を同期的に判断するにはどうすればいいですか? 質問する

JavaScript Promiseの状態を同期的に判断するにはどうすればいいですか? 質問する

純粋な JavaScript Promise (組み込み実装またはポリフィル) があります。

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

仕様によれば、Promise は次のいずれかになります。

  • 「解決した」と「解決した」
  • 「解決」と「拒否」
  • '保留中'

Promise を同期的に調査して、次のことを決定したいユースケースがあります。

  • 約束は果たされましたか?

  • もしそうなら、約束は解決されますか?

#then()Promise の状態が変わった後に非同期で実行される作業をスケジュールするために を使用できることは知っています。これを行う方法を尋ねているのではありません。

この質問は、Promise の状態の同期照会に関するものです。どうすればこれを実現できますか?

ベストアンサー1

ネイティブ JavaScript プロミスには、このような同期検査 API は存在しません。ネイティブ プロミスではこれを行うことは不可能です。仕様では、このような方法は指定されていません。

ユーザーランド ライブラリはこれを実行でき、特定のエンジン (v8 など) をターゲットにしていて、プラットフォーム コードにアクセスできる場合(つまり、coreでコードを記述できる場合)、特定のツール (プライベート シンボルなど) を使用してこれを実現できます。ただし、これは非常に特殊なものであり、ユーザーランドではありません。

おすすめ記事