EventLoop

作者: 饥人谷_刘康 | 来源:发表于2020-07-06 12:21 被阅读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

相关文章

网友评论

      本文标题:EventLoop

      本文链接:https://www.haomeiwen.com/subject/lqqltktx.html