关于js执行顺序问题SOS九九我

我晕了😣哪位能讲一下如何执行的

setImmediate(() => {
    console.log(1);
    Promise.resolve().then(() => {
      console.log(2);
    });
  }, 0);
  new Promise((resolve) => {
    console.log(3);
    resolve();
  }).then(() => {
    console.log(4);
    process.nextTick(() => {
      console.log(5)
    });
    setTimeout(() => {
      console.log(6);
    }, 0);
  }).then(() => {
    console.log(7);
  });
  console.log(8);

  1. 一般是按照正常的顺序执行。
  2. 有promise (微任务),那么promise次之。
  3. 遇到和定时器(interval,timeout等)相关的最后执行。