Решение
@true_jsОтвет:
one four three two
Обьяснение:
Синхронные операции выполняются быстрее асинхронных, поэтому сначала будет выведено 'one' и 'four'.
Вызов Promise создают так называемую микро таску (микро задачу), а setTimeout создаёт макро таску. Микро таска будет выполнена быстрее, поэтому выведется 'three', а уже после 'two'.
Код для проверки:
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
Promise.resolve().then(function() {
console.log('three');
})
console.log('four');