JS 引擎执行当前调用栈的代码(同步任务)。 遇到异步任务,调用定时器/HTTP/事件线程进行处理。 异步操作完成,事件触发线程将回调函数推入任务队列。 JS 引擎空闲后,检查微任务队列,全部执行完毕。 事件循环询问 GUI 渲染线程:是否需要重绘(Repaint)? GUI 线程接管控制权,进行 Layout 和 Paint。 GUI 线程挂起,事件循环从任务队列中取出一个新的宏任务,交给 JS 引擎,开启下一轮。