javascript 事件循环
时间: 2024-08-30 08:02:48 浏览: 62
详解JavaScript事件循环机制
JavaScript的事件循环是其核心运行机制之一,它负责处理异步操作和事件驱动编程。简单来说,事件循环可以分为以下几个步骤:
1. **任务队列**(任务队列通常是两个,主线程队列和 microtask 队列):所有异步任务(如定时器、Promise、Event Loop 回调等)首先会被放入这个队列。
2. **执行Microtasks**:每次执行完一轮宏任务后,会先执行微任务队列中的所有任务,直到微任务为空。微任务通常包括 `Promise.then`、`process.nextTick` 和 `async function` 的返回值等。
3. **执行Macrotasks**:接着,主线程开始执行宏任务,主要包括函数调用、I/O 操作完成等。当遇到同步代码块或新的宏任务时,事件循环暂停,等待该部分代码执行完毕。
4. **再次轮询任务队列**:当宏任务执行完或微任务执行完,事件循环会继续检查任务队列,重复上述步骤。
5. **事件循环不会阻塞**:由于事件循环的设计,JavaScript 可以保持非阻塞的特性,这意味着即使有长时间运行的任务,其他代码也能继续执行。
阅读全文