[注釈]macrotask,microtask


📚TL;DR


約束した左利きは小さな任務だ macrotaskを実行し、キューで取得したすべてのmicrotaskを実行します。

example.js

console.log('script start');

setTimeout(() => {
  console.log('setTimeout1');
});

setTimeout(() => {
  console.log('setTimeout2');
  queueMicrotask(() => {console.log('queueMicroTask 3')})
  queueMicrotask(() => {console.log('queueMicroTask 4')})
})

queueMicrotask(() => {console.log('queueMicroTask 1')})
queueMicrotask(() => {console.log('queueMicroTask 2')})

Promise.resolve()
  .then(() => {
    console.log('promise1');
  })
  .then(() => {
    console.log('promise2');
  });

console.log('script end');

result

script start
script end
queueMicroTask 1
queueMicroTask 2
promise1
promise2
setTimeout1
setTimeout2
queueMicroTask 3
queueMicroTask 4