Обратные вызовы, которые будут вызваны, когда вы resolve
обещание по-прежнему требуется, чтобы спецификация была вызвана асинхронно. Это необходимо для обеспечения согласованного поведения при использовании обещаний для сочетания синхронных и асинхронных действий.
Поэтому, когда вы вызываете resolve
, обратный вызов поставлен в очередь , а выполнение функции немедленно продолжается любой код, следующий за вызовом resolve()
.
Только после того, как цикл событий JS будет предоставлен обратно, можно удалить обратный вызов из очереди и фактически вызвать.