JSイベントサイクル(Event Loop)マクロタスクタスク微タスク
1825 ワード
1コード
まず、直接コードを付けます.
私の理解から見れば、これはJSにおけるイベントサイクル機構(Event Loop)が決定したためであり、JSにおけるイベントサイクルは、タスク・キューをマクロタスク(Task)とマイクロタスク(Microtask)に分けている.タスクキューのスケジューリングメカニズムは私たちが考えているのとは違って、結果ページが違っています.
2.1マクロタスク/マイクロタスクに属するタスクは何ですか?
マクロタスクのキューには、タスクが含まれています.
script(メインプログラムコード)、setTimeout、set Interval、setImmedite、I/O、UI rendeng
タスクのキューにはジョブが含まれています. process.nextTick,Promises,Object.observe,MuttionObserver
2.2発表の流れ
JSの事件処理を分析するのは初めてです.何か間違いがあったら、ご容赦ください.
まず、直接コードを付けます.
setTimeout(() => {
console.log(1);
}, 100)
setTimeout(() => {
console.log(2);
})
new Promise((resolve) => {
console.log(3)
resolve();
}).then(() => {
console.log(4);
})
new Promise((resolve) => {
console.log(5);
})
async function asyn1() {
console.log(6);
}
asyn1().then(() => {
console.log(7);
})
console.log(8);
運行結果を直接言ってください. 3 5 6 8 4 7 2 1
2どうしてですか?私の理解から見れば、これはJSにおけるイベントサイクル機構(Event Loop)が決定したためであり、JSにおけるイベントサイクルは、タスク・キューをマクロタスク(Task)とマイクロタスク(Microtask)に分けている.タスクキューのスケジューリングメカニズムは私たちが考えているのとは違って、結果ページが違っています.
2.1マクロタスク/マイクロタスクに属するタスクは何ですか?
マクロタスクのキューには、タスクが含まれています.
script(メインプログラムコード)、setTimeout、set Interval、setImmedite、I/O、UI rendeng
タスクのキューにはジョブが含まれています. process.nextTick,Promises,Object.observe,MuttionObserver
2.2発表の流れ
// : 3 5 6 8 4 7 2 1
// log(1) , 0.1s
// log(2) ,
// log(3) ,then log(4)
// log(5) new Promise() ;
// log(6) ( Promise),
// log(7) then
// log(8)
// , , ,
// ,log(4),log(7)
// :log(2),log(1)
3まとめJSの事件処理を分析するのは初めてです.何か間違いがあったら、ご容赦ください.