JavaScript里面的宏任务和微观任务

首先在es3之前,我们js一直单通道,单线程,我们是没有异步操作,在js执行的顺序中,我们就称之为宏任务
在es3之后,加入了promise 出现了微任务

setTimeout(() => {
    console.log(1);

    process.nextTick(() => console.log(5))

}, 0);

new Promise((resovle, reject) => {
    console.log(2);

    resovle();

}).then(() => console.log(3))
console.log(4);

在上面的代码块,我们最后的打印结果是 2,4,3,1,5
然后先执行同步,微任务,执行宏任务,其次要看js的执行顺序
promise就是微任务

宏任务、微任务的执行顺序

先执行同步代码,
遇到异步宏任务则将异步宏任务放入宏任务队列中,
遇到异步微任务则将异步微任务放入微任务队列中,
当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,
微任务执行完毕后再将异步宏任务从队列中调入主线程执行,
一直循环直至所有任务执行完毕。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容