88.宏任务微任务代码执行顺序
console.log(1);
new Promise((resolve, reject) => {
  console.log(2);
  setTimeout(() => {
    console.log(3);
    Promise.resolve().then(() => {
      console.log(4);
    });
  }, 0);
  resolve();
  reject(); // 这行无效
  console.log(5);
}).then(
  () => {
    console.log(6);
    Promise.resolve().then(() => {
      console.log(7);
    });
    setTimeout(() => {
      console.log(8);
    }, 0);
  },
  () => {
    console.log(10);
  }
);
错误回答
1 2 6 10 7 3 4 8
参考答案
DETAILS
为什么没有输出 10?
- reject()在 resolve()之后调用无效(Promise 状态不可逆)
- 当 Promise 被 resolve()后,后续的 reject()调用会被忽略
- .then()只会触发第一个成功回调函数
1 2 5 6 7 3 4 8
