@ironmansl

Вопрос о асинхронности?

Изучаю асинхронность и синхронность в js
Вот например есть в коде

1 Инструкиция №1
2 Инструкция №2

Я так понял синхронный код означает что Инструкция №2 не запустится пока не будет выполнена Инструкция №1
А вот асинхронный код это когда Инструкция №2 запускается без ожидания завершения Инструкиции №1, при этом Инструкиция №1 работает в фоновом режиме или стоит на паузе.

Но вот допустим такая ситуация:

1 Инструкиция №1 //ставим setTimeout = 3 секунды для Инструкиция №1
2 Инструкция №2

Мы уже имеем асинхронную операцию для Инструкиции №1 так что сейчас начинает выполнятся Инструкиция №2 не дожидаясь завершения Инструкиции №1.
Но что если Инструкция №2 будет выполняться 4 секунды? Ну напрмер инструкция №2 отправляет запрос на сервер и ответ будет только через 4 секунды. Что первое будет выведено на экран Инструкиция №1 или
Инструкция №2? И почему?
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
прочитайте про event loop https://developer.mozilla.org/en-US/docs/Web/JavaS...
код в JS на самом деле всегда "синхронный" и параллельно ничего не выполняется.
в каждый момент работает только одна "инструкция", и пока она не выполнится - никакая другая не будет работать.
Если у вас иснтрукция2 выполняется час - то все остальные будут этот час её ждать, вне зависимости от того что у них был таймаут 3 секунды или запрос завершился или пользователь мышкой кликнул или еще что.
Ответ написан
Ваш ответ на вопрос

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

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