答题思路:
● 首先基本定义,宏任务和微任务
● 事件循环机制执行顺序
● async / await 执行顺序
一、什么是事件循环
事件循环机制就是一种同步编程模型,用于异步处理操作。当代码中遇到需要等待一部操作结果的语句时,js引擎不会一直等待,而是将该语句放入事件的队列中,并执行下一步语句。异步操作完成的时候,就会将其对应的事件加入到事件队列中。
事件循环机制的组成部分:
事件队列:
用来存储事件的队列,包括鼠标点击、键盘输入、定时器等等
执行栈:
用来存储正在执行的代码的栈
宏任务:
指的是需要被放入事件队列中的任务,例如setTimeout / setInterval等
微任务:
指的是需要当前任务执行完成后立即执行的任务,例如Promise的then / catch / finally方法
事件循环机制的执行顺序