Задать вопрос
@GNG999

Какой порядок в event loop?

Есть код
const run = () => {
    setTimeout(() => {
        console.log('timeOut')
    }, 0)

    console.log(1)
    
    new Promise(resolve => {
        console.log("Promise")
        
        setTimeout(() => {
            console.log('777')
            resolve()
        }, 0)
    })
    .then(() => console.log('then1'))
    .then(() => console.log('then2'))

    console.log(4)

    setTimeout(() => {
        console.log('timeOut2')
    }, 0)
}

run()


почему порядок вывода таков ?
1
Promise
4
timeOut
777
then1
then2
timeOut2

То что первым выводится синхр код - понятно. Но дальше у нас идут таймауты макро таски и промис с двумя then это к микро таскам
Микро таски же должны быть в первую очередь после синхр кода ?
  • Вопрос задан
  • 100 просмотров
Подписаться 2 Средний 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
1 и Promise - это синхронный код

далее таски из таймаутов, по очереди: timeOut, 777, timeOut2

но таск 777 при своем выполнении создает 2 микротаска (then1 и then2), вот они выполнятся до таска timeOut2

Микро таски же должны быть в первую очередь после синхр кода ?

на момент старта тасков timeOut и 777, этих микротасков ещё не было
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы