js事件循环机制=>微任务与宏任务

// 宏任务 (第一次代码执行的环境 script标签 setTimeout ui渲染)  微任务:promise process.nextTick
// 单线程(主线程) 工作线程 webworker 辅助线程
//js执行机制 =》事件循环机制
//js异步分为两部分,一是宏任务(setTimeout,script, ui渲染),二是微任务(promise,process.nextTick)
//默认再浏览器中,js会先执行当前栈中的代码:同步代码,同步代码执行完毕后会清空第一个微任务,执行的过程中会注册一些微任务,在执行下一个宏任务之前清空一次微任务
//再去执行下一个宏任务

console.log("01")

setTimeout(()=>{
    Promise.resolve().then(()=>{
        console.log('settimeout - then1');
        setTimeout(()=>{
            console.log('last timeout')
        })
    })
    console.log(1);
})
setTimeout(() => {
    console.log(2);
});
setTimeout(() => {
    console.log(3);
});
Promise.resolve().then(()=>{
    console.log('then');
    setTimeout(function () {
        console.log("哈哈哈")
    })
})
Promise.resolve().then(()=>{
    console.log('then');
})
Promise.resolve().then(()=>{
    console.log('then');
});

console.log("02")

执行结果: 

发布了80 篇原创文章 · 获赞 5 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_28473733/article/details/90451377