ホームページ >ウェブフロントエンド >jsチュートリアル >Promise コンストラクターのコールバックはいつ実行されますか?
Promise コンストラクター コールバックの同期性
Promise 構築のコンテキストでは、Promise に提供されるコールバックの実行タイミングについて疑問に思うかもしれません。コンストラクタ。この質問を詳しく見てみましょう。
次のスニペットを考えてみましょう:
function doSomethingAsynchronous() { return new Promise((resolve) => { const result = doSomeWork(); setTimeout(() => { resolve(result); }, 100); }); }
この Promise を構築するとき、どの時点で doSomeWork() が呼び出されますか?
次のようにECMAScript 仕様では、executor 関数 (コンストラクターに提供されるコールバック) が呼び出されます。 Promise の構築時に同期。これは、Promise が作成されると、コールバックが実行を続行する前に、すぐに doSomeWork() が実行されることを意味します。 MDN では次のように述べられています。
エグゼキュータは、引数としてsolveFunc 関数とrejectFunc 関数を使用して (Promise が構築されるとすぐに) 同期的に呼び出されます。
エグゼキュータ呼び出しの同期の性質は次のとおりです。仕様により保証されています。たとえば、この保証は、all または Race を使用して複数の Promise を構成する場合や、エグゼキュータに同期副作用がある場合に関連します。
以上がPromise コンストラクターのコールバックはいつ実行されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。