事件循环中,setTimeout(fn, 0) 与 Promise.then 回调的执行顺序是?

JavaScript

  1. A.setTimeout 回调先执行,因为它写在前面且延时为 0,入队更早
  2. B.then 是微任务,同步代码执完后先清空微任务再跑 setTimeout
  3. C.两者同时并行执行,在不同线程上
  4. D.顺序随机不可预测,取决于当时的 CPU 调度