ホームページ >ウェブフロントエンド >jsチュートリアル >Promise コンストラクターのコールバックはいつ実行されますか?

Promise コンストラクターのコールバックはいつ実行されますか?

DDD
DDDオリジナル
2024-11-28 19:12:10316ブラウズ

When is the Promise Constructor's Callback Executed?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。