12. 宏任务_微任务

Posted tianxiaxuange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于12. 宏任务_微任务的主要内容,如果未能解决你的问题,请参考以下文章

宏任务-微任务

微任务和宏任务哪个先执行?

JS事件循环机制(宏任务,微任务)

JS事件循环机制(宏任务,微任务)

正常任务(宏任务)和微任务

宏任务和微任务