Promise オブジェクトを作成する際、コンストラクターにコールバック関数 (エグゼキューター) が渡されます。このコールバック関数は、Promise の初期化と履行または拒否を担当します。ただし、このコールバックがいつ実行されるかはすぐには分からないかもしれません。
提供されたコード スニペットでは、Promise の作成に関連して doSomeWork() 関数が呼び出されるのはいつですか?
という疑問が生じます。答え:
Promise 仕様と MDN ドキュメントによると、 executor コールバックは Promise が構築された直後に同期的に呼び出されます。これは、新しい Promise 行に到達するとすぐに doSomeWork() が実行されることを意味します。
追加情報:
この同期実行により、executor コールバックが常に呼び出されることになります。それに依存する可能性のある他の操作の前に。たとえば、複数の Promise をチェーンしている場合、または all または Race を使用して Promise を結合している場合、それらの Promise のコールバックは正しい順序で呼び出されることが保証されます。
さらに、コールバックの同期呼び出しにより、次のことが可能になります。 Promise の実行による即時の副作用 (次の場合) any.
注:
Promise の非同期動作は、executor コールバックが呼び出され、Promise が作成された後にのみ有効になることを理解することが重要です。したがって、executor コールバック内のコードは同期的に実行されますが、後続の非同期操作は非同期的に行われます。
以上がPromise のコンストラクター コールバックはいつ実行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。