EventLoop

2020-07-06  本文已影响0人  饥人谷_刘康

1.浏览器中的事件循环(Event Loop)

事件循环可以简单的描述为以下四个步骤


1. 函数入栈,当Stack中执行到异步任务的时候,就将他丢给WebAPIs,接着执行同步任务,直到Stack为空;
2. 此期间WebAPIs完成这个事件,把回调函数放入队列中等待执行(微任务放到微任务队列,宏任务放到宏任务队列)
3. 执行栈为空时,Event Loop把微任务队列执行清空;
4. 微任务队列清空后,进入宏任务队列,取队列的第一项任务放入Stack(栈)中执行,回到第1步。

浏览器中的任务源(task)

微任务:then 、messageChannel 、mutationObersve、promise.then,process.nextTick
宏任务:script、setTimeout、setInterval、setTmmediate(只兼容ie)、promise中的executor

上一篇下一篇

猜你喜欢

热点阅读