微任务与宏任务。

152 阅读1分钟

微任务与宏任务。

图片

1.png

概念

先执行主线任务,事件循环机制,遇到异步任务,把主线程任务执行完再把异步任务委托给宿主环境,,
宿主环境将异步任务对应的回调函数放入任务队列中依次执行。

执行过程

graph TD
主线程 --> 堆+栈同步去执行同步任务 --> 遇到异步任务-->委托给宿主环境-->将任务放入任务队列中-->异步任务按照任务队列任务依次执行

宏任务

异步ajax请求,setTimeout,setlnterval,Dom操作,文件操作, 都属于宏任务

微任务

Pomise,then,catch,finally

process,nextTick 都属于微任务

它的执行顺序

微任务比宏任务执行的时间要早,微任务总是在宏任务之前去执行,微任务比宏任务执行的要早
扩展:
promise里面写的是同步的,不是异步的。