avatar
Programmer Way | IT и фриланс
@ProgrammerwayIT
16.03.2021 12:01
​​Асинхронность.
Js однопоточный, интерпретатор выполняет код последовательно: строчка за строчкой, команда за командой. Поэтому если у вас есть какие-то сложные расчеты, то пока они не выполняться, весь следующий код не отработает. Все вроде бы логично, но как быть, если нам нужно отправить запрос на сервер или провести какую-то асинхронную операцию, в таком случае js обращается за помощью к Web API, благодаря нему мы и получаем доступ ко всей асинхроннщине в языке

Существует call stack, который отвечает за выполнение кода, когда туда попадает какой-то асинхронный колбэк, то он передаётся Web API, который производит нужные операции и помещает коллбэк в очередь коллбэков (callback queue). Отдельно стоит отметить event loop — это цикл, который следит за стеком вызовов, и если он пуст, то он помещает туда коллбэк из очереди и он выполняется. Для закрепления советую посмотреть небольшое видео:
31 4.2K

Обсуждение 0

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram