これら 4 つの setTimeout 関数とその実行部分を見てください。
P粉304704653
P粉304704653 2023-09-17 18:04:25
0
1
587

リーリー

ここでは setTimeout 関数を 4 つ書きましたが、私の理解では、これらはコールバック キュー内で同時に実行を開始しますよね。私の考えが正しければ、私の質問は、4 番目の setTimeout() 関数がコールバック キュー内で実行の半分または半分以上を完了したのか、それともコール スタック実装にプッシュされてから 7 秒後に最初から開始されるのかということです。では、舞台裏で何が起こっているのでしょうか?

P粉304704653
P粉304704653

全員に返信(1)
P粉709307865

これらの関数は、コールバック キュー内で並列または同時に実行されません。これらは個別かつ非同期的にスケジュールされます。実行順序は、各関数に指定されたレイテンシによって異なります。 setTimeout 関数ごとに、指定された遅延の後にコールバックが実行されるようにスケジュールされます。

実行シーケンスは次のとおりです:

リーリー

ただし、4 番目の setTimeout 関数は、他の setTimeout 関数と一緒に実行されるとは限りません。また、それ自体の実行時間も保証されません。 実行順序はコールバック キューによって決定され、イベント ループはコールバック キューからタスクを取得し、コール スタックが空の場合にのみコール スタック内でタスクを実行します。したがって、4 番目の setTimeout 関数は、コール スタックに他のタスクがない場合にのみ実行を開始します。指定されたコードを実行すると、出力は次の順序で表示されます:

出力の順序は次のとおりです:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート