事件循环是JavaScript运行时环境的核心概念之一,特别是在浏览器和Node.js中。它允许JavaScript在单线程中处理多个任务,通过非阻塞的方式提高程序性能。
基本概念
事件循环(Event Loop)是一种处理并发任务的机制。在JavaScript中,事件循环负责将代码、事件处理程序和定时器回调按顺序执行。
事件循环的三个阶段:
- 检查阶段(Check Phase):检查是否有已完成的宏任务(如整体代码块、定时器等)。
- 微任务阶段(Microtask Phase):执行所有微任务(如Promise的回调)。
- 渲染阶段(Rendering Phase):执行UI的渲染。
- 检查阶段(Check Phase):重复以上步骤。
示例
以下是一个简单的事件循环示例:
console.log('1');
setTimeout(() => {
console.log('2');
}, 0);
new Promise((resolve) => {
console.log('3');
resolve();
}).then(() => {
console.log('4');
});
console.log('5');
输出结果为:1 3 5 4 2
扩展阅读
如果你想要更深入地了解事件循环,可以阅读以下教程:
图片
事件循环的流程可以想象成一条流水线,以下是流水线的示意图: