1. 程式人生 > >12. 巨集任務_微任務

12. 巨集任務_微任務

執行過程:

每當執行棧為空時,就檢查微任務,有則進棧執行,棧空了再去查微任務,

直到沒有微任務時,去巨集任務中取一個進棧執行,棧空了又開始檢查微任務,迴圈往復,直至全都為空

巨集任務:

I/O (click事件、fs.writeFile)

setTimeout

setInterval

setImmediate (nodejs)

requestAnimationFrame

微任務

process.nextTick (nodejs)

Promise.then().catch()

  • console.log(1);
    setTimeout(function () {
        console.log(
    2); }, 0) new Promise((resolve, reject) => { reject(true); setTimeout(function () { resolve(false); }, 1000); new Promise((resolve, reject) => { resolve(false); }).then(() => { console.log(6); }, () => { console.log(7); }); }).then(()
    => { console.log(3); }).catch(() => { console.log(4); }); console.log(5); // 1 5 6 4 2