@Worddoc

В чем все-таки суть асинхронности в javascript?

Изучил работу движка V8 в контексте браузера и пришло непонимание.
Везде сказано, что в javascript есть асинхронность за счет таких вещей, как, например, Promise и setTimeout.
Асинхронность - принцип, по которому код выполняется таким образом, чтобы не приостанавливать поток выполнения последующего кода программы.

Коллбеки Promise записываются в очередь микрозадач, коллбеки setTimeout записываются в очередь макрозадач(задач).
Event loop работает так: 1 задача -> вся очередь микрозадач ->  reflow/rerender -> 1 задача -> вся очередь микрозадач и так далее...
Вопрос: почему, учитывая тот факт, что пока не выполнится задача и последующая за ней очередь микрозадач, не начнется выполнение следующей задачи, везде утверждается, что в javascript есть асинхронность? Ведь "асинхронные" коллбеки не дают исполниться последующим задачам, т.к. Javascript однопоточный язык.

Или под асинхронностью в javascript подразумевается непрерывная работа интерпретатора javascript, который не блокируется и продолжает ставить в очередь задачи, а не непрерывное выполнение задач в стеке вызов?
  • Вопрос задан
  • 208 просмотров
Решения вопроса 1
irestone
@irestone
Junior Web Developer
Думаю, это прояснит вопрос
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Александрия Москва
от 200 000 до 250 000 руб.
Foodtronics Москва
от 100 000 до 200 000 руб.
от 5 500 до 6 500 usd.
21 авг. 2019, в 00:43
500 руб./за проект
21 авг. 2019, в 00:14
1000 руб./за проект