首页 > 其他 > 详细

12. 宏任务_微任务

时间:2018-12-31 13:40:28      阅读:170      评论:0      收藏:0      [点我收藏+]

执行过程:

每当执行栈为空时,就检查微任务,有则进栈执行,栈空了再去查微任务,

直到没有微任务时,去宏任务中取一个进栈执行,栈空了又开始检查微任务,循环往复,直至全都为空

宏任务:

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. 宏任务_微任务

原文:https://www.cnblogs.com/tianxiaxuange/p/10201867.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!