Асинхронность в JS
Что такое Event loop, при чём здесь Web API, и как работают промисы и async/await
Синхронный код и его проблемы
Представим, что нам нужно выполнить какую-то операцию, например, напечатать в консоли приветствие, но не сразу, а через 5 секунд. Если бы мы запустили синхронную функцию задержки delay(), то движок бы ничем другим заниматься в это время не мог.
Асинхронный код
Теперь попробуем решить эту же задачу, но так, чтобы наш код не блокировал выполнение. Для этого мы воспользуемся функцией setTimeout(). Задача решена. Однако, в этот раз, в эти «5 секунд молчания» мы можем выполнять другие действия.
Возникает несколько вопросов:
✔️Почему вторая строка кода выполнилась до первой, если JS однопоточный?
✔️Куда девается setTimeout() на время, пока выполняется другой код?
✔️Как движок понимает, что пора выводить Hello?
Далее мы рассмотрим следующее:
👉 Стек вызовов
👉 Цикл событий
👉 Ад колбэков
👉 Промисы
👉 Асинхронные функции
👉Читать статью полностью
#статья #js
👉 @frontend_mind