@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? И почему?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 3
locky_yotun
@locky_yotun Куратор тега JavaScript
Я видел некоторый джаваскрипт
https://www.youtube.com/watch?v=j4_9BZezSUA
Вот хороший доклад с русским дубляжом на эту тему
Ответ написан
Robur
@Robur
Знаю больше чем это необходимо
прочитайте про event loop https://developer.mozilla.org/en-US/docs/Web/JavaS...
код в JS на самом деле всегда "синхронный" и параллельно ничего не выполняется.
в каждый момент работает только одна "инструкция", и пока она не выполнится - никакая другая не будет работать.
Если у вас иснтрукция2 выполняется час - то все остальные будут этот час её ждать, вне зависимости от того что у них был таймаут 3 секунды или запрос завершился или пользователь мышкой кликнул или еще что.
Ответ написан
askhat
@askhat
Full Stack Developer
Функции бывают синхронными и асинхронными. Синхронный код означает, что инструкции будут выполнены в таком же порядке как они встречаются в коде. Асинхронные инструкции будут выполнены в другом порядке (а возможно в таком же как и в коде), порядок зависит от внешних факторов, таких как дисковые и сетевые запросы, или таймеры установленные разработчиком. Эти факторы иногда называют побочными эффектами.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы