イベントループ
2904 ワード
const 첫번째손님 = "영화표_1장예매"; ----- 5초
const 두번째손님 = "영화표_100장예매"; ----- 500초
const 세번째손님 = "영화표_2장예매"; ----- 10초
영화예매해주는기계 = function (x) {
console.log(x);
};
영화예매해주는기계(첫번째손님); ----- 5초
영화예매해주는기계(두번째손님); ----- 505초
영화예매해주는기계(세번째손님); ----- 난 2장만 뽑으면 되는데 515초 기다려야해?..
const 첫번째손님 = "영화표_1장예매";
const 두번째손님 = "영화표_100장예매";
const 세번째손님 = "영화표_2장예매";
영화예매해주는기계 = function (x) {
console.log(x);
};
영화예매해주는기계(첫번째손님);
setTimeout(function () { -----비동기함수
영화예매해주는기계(두번째손님);
}, 0); -----0초뒤에 영화표100장 예매해주세요.
영화예매해주는기계(세번째손님);
const 두번째손님 = "영화표_100장예매";
영화예매해주는기계 = function (x) {
console.log(x);
};
setTimeout(function () {
영화예매해주는기계(두번째손님);
}, 0);
(正確にはTask Queue)
setTimeout(function () {
console.log("안녕하세요!");
}, 0);
以下、上記の簡単なコードの起動順序について説明し、まとめます.1.settimeout(匿名、0秒)関数をCall Stackに積み上げる2.settimeout関数は非同期関数であるため、Web APIに移動する
3.settimeout関数の匿名関数をCalback Queueに移動
4.イベントループはコールスタックが空であることをチェックし(常にコールスタックをチェックする)、匿名関数をコールスタックに送信する
5.匿名関数はCallStackにアップロードされ、匿名関数のコンソールになります.log(「こんにちは!」Call Stackにアップロードして消去すると匿名関数も消去されます
🤩 PLUS
これは
Reference
この問題について(イベントループ), 我々は、より多くの情報をここで見つけました https://velog.io/@superlgtele/이벤트-루프Event-Loopテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol