Порядок console.log с Promise и setTimeout

Medium
event-looppromisessetTimeoutmicrotasksmacrotasksjavascriptTinkoff

В каком порядке выведутся сообщения и почему?

console.log(1);

setTimeout(function () {
  console.log(2);
});

Promise.resolve(3).then(console.log);

console.log(4);

setTimeout(function () {
  console.log(5);
}, 0);

console.log(6);

Напишите порядок вывода чисел через пробел, например "1 2 3".

Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода