84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
リーリー
ここでは setTimeout 関数を 4 つ書きましたが、私の理解では、これらはコールバック キュー内で同時に実行を開始しますよね。私の考えが正しければ、私の質問は、4 番目の setTimeout() 関数がコールバック キュー内で実行の半分または半分以上を完了したのか、それともコール スタック実装にプッシュされてから 7 秒後に最初から開始されるのかということです。では、舞台裏で何が起こっているのでしょうか?
これらの関数は、コールバック キュー内で並列または同時に実行されません。これらは個別かつ非同期的にスケジュールされます。実行順序は、各関数に指定されたレイテンシによって異なります。 setTimeout 関数ごとに、指定された遅延の後にコールバックが実行されるようにスケジュールされます。
実行シーケンスは次のとおりです:
ただし、4 番目の setTimeout 関数は、他の setTimeout 関数と一緒に実行されるとは限りません。また、それ自体の実行時間も保証されません。 実行順序はコールバック キューによって決定され、イベント ループはコールバック キューからタスクを取得し、コール スタックが空の場合にのみコール スタック内でタスクを実行します。したがって、4 番目の setTimeout 関数は、コール スタックに他のタスクがない場合にのみ実行を開始します。指定されたコードを実行すると、出力は次の順序で表示されます:
出力の順序は次のとおりです:
これらの関数は、コールバック キュー内で並列または同時に実行されません。これらは個別かつ非同期的にスケジュールされます。実行順序は、各関数に指定されたレイテンシによって異なります。 setTimeout 関数ごとに、指定された遅延の後にコールバックが実行されるようにスケジュールされます。
実行シーケンスは次のとおりです:
リーリーただし、4 番目の setTimeout 関数は、他の setTimeout 関数と一緒に実行されるとは限りません。また、それ自体の実行時間も保証されません。 実行順序はコールバック キューによって決定され、イベント ループはコールバック キューからタスクを取得し、コール スタックが空の場合にのみコール スタック内でタスクを実行します。したがって、4 番目の setTimeout 関数は、コール スタックに他のタスクがない場合にのみ実行を開始します。指定されたコードを実行すると、出力は次の順序で表示されます:
出力の順序は次のとおりです:
リーリー