Promise.resolve().then(()=>{
setTimeout(()=>{
console.log('11111')
},0)
})
setTimeout(()=>{
console.log('22222222')
},0)
Результат: 22222222, 11111
Сначало выполняется then у промиса и добавляет первый setTimeout в очередь, потом второй setTimeout добавляется в очередь. По правилу первым пришел – первым ушел, первый setTimeout должен был запуститься первым, но в данном случае второй setTimeout выполняется сразу