是什么
JS的事件循环机制是指一种用于处理异步任务的机制,任务有同步任务(比如函数调用),有异步任务(比如定时器和网络请求)。事件循环机制就是用来管理和调度这些异步任务的执行顺序。
重要概念
事件循环
是一个持续运行的循环,用于检查任务队列并执行任务。
执行栈
同步任务会直接放在执行栈。
微任务队列
用于存储需要在当前任务执行结束后尽快执行的任务。(Promise的then
回调,async/await
的异步操作,nextTick
)
宏任务队列
用于存储那些需要稍后执行的任务。(定时器:setTimeout
、setInterval
,DOM事件回调,网络请求)
过程
下面是JS事件循环机制的简要描述:
1. 执行同步任务
2. 执行微任务
3. 执行宏任务
4. 重复执行上述步骤:事件循环不断重复执行上述步骤,按照微任务优先
的原则执行微任务队列中 的任务,然后执行宏任务队列中的一个任务。这个过程是一个循环,直到任 务队列为空。
需要注意的是,微任务队列会在每次宏任务执行完毕后立即执行,而不会等待所有宏任务执行完毕 才执行。这意味着微任务具有高优先级,且会在下一个宏任务之前执行。
大家也可以做做下面这个题~