Skip to content
****

我们知道,单线程与异步编程听起来是矛盾的,哪JS是如何实现异步编程呢,答案就是事件循环

  1. 当同步代码时,引擎会顺序执行。
  2. 当碰到异步的代码时,引擎会将这个任务挂起,放入一个事件队列
  3. 当同步代码执行完成后,
  4. ****

从代码来看,js事件循环是采用类似下边这种方式来实现的:

javascript
while (queue.waitForMessage()) {
  queue.processNextMessage();
}

关于宏任务、微任务

************

虽然js是单线程的,但js的执行环境浏览器并不是单线程的,

其中渲染进程是执行js代码和渲染dom元素的进程,,例如处理用户事件。

  1. 现代JavaScript教程-事件循环:微任务和宏任务
  2. 详解JavaScript中的Event Loop(事件循环)机制