javascript概念简讲(4)-宏任务微任务

217 阅读1分钟

概念

  • javascript单线程的执行的,在javascript异步实现是通过事件循环来实现的(类似早期的windows编程)。

  • 宏任务 一个队列,宏任务跟当前执行脚本是平级的,例如setTimeOut等

  • 微任务 一个队列,微任务是当前脚本执行后会一直等待执行然后再执行宏任务,例如promise等

  • 事件循环 事件循环逻辑

while (EventLoop.waitForTask()) {
  const taskQueue = EventLoop.selectTaskQueue();
  if (taskQueue.hasNextTask()) {
    taskQueue.processNextTask();
  }

  const microtaskQueue = EventLoop.microTaskQueue;
  while (microtaskQueue.hasNextMicrotask()) {
    microtaskQueue.processNextMicrotask();
  }

  rerender();
}