微任务与宏任务。
图片
概念
先执行主线任务,事件循环机制,遇到异步任务,把主线程任务执行完再把异步任务委托给宿主环境,,
宿主环境将异步任务对应的回调函数放入任务队列中依次执行。
执行过程
graph TD
主线程 --> 堆+栈同步去执行同步任务 --> 遇到异步任务-->委托给宿主环境-->将任务放入任务队列中-->异步任务按照任务队列任务依次执行
宏任务
异步ajax请求,setTimeout,setlnterval,Dom操作,文件操作, 都属于宏任务
微任务
Pomise,then,catch,finally
process,nextTick 都属于微任务
它的执行顺序
微任务比宏任务执行的时间要早,微任务总是在宏任务之前去执行,微任务比宏任务执行的要早
扩展:
promise里面写的是同步的,不是异步的。