Краткая История Асинхронных Функций Javascript

Изучая Javascript, я снова и снова натыкался на многочисленные статьи об асинхронных функциях и операциях.

Несмотря на несомненные преимущества такого функционала, меня каждый раз приводил в замешательство приведенный авторами листинг.

Слова менялись, суть оставалась прежней, в голове назревала каша.

Ниже приведен небольшой справочник по историческому развитию и версиям ECMA.



Зачем нужны асинхронные операции?

Компьютерная программа может выполнять неограниченное количество задач.

Ни для кого не секрет, что веб-приложения должны работать с множеством разных задач, которые часто должны использовать одни и те же данные.

В частности, одним из наиболее распространенных примеров является отображение информации пользователю (UI) и получение информации с помощью запросов к серверу.

Неудивительно, ведь с этим сталкивается практически каждый веб-разработчик: работа с базой данных, предоставление пользовательского интерфейса, организация какого-либо API — всё это присутствует буквально в каждом тестовом задании, не только у JS-программистов.

Почему бы не выполнять команды последовательно? Зачастую нужную пользователю информацию можно получить только через значительный промежуток времени.

Если вы организуете программу как:

  1. Получение информации с сайта https:/some/api/item/1
  2. Отображение информации о первом элементе на экране.

Возникнут серьезные трудности с отрисовкой страницы и созданием приятного впечатления у пользователя (так называемый пользовательский опыт).

Только представьте: страница, скажем, на Netflix или Aliexpress должна будет получить данные из сотен баз данных, прежде чем она сможет начать отображать контент пользователю.

Такая задержка будет аналогична загрузке уровня 3D-игры, и если игрок готов ждать, то пользователь сайта хочет получить как можно больше информации в этот момент. Решение было найдено: асинхронные операции .

Пока основной поток программы занят инициализацией и отображением элементов сайта на холсте, он также выводит задачи другим потокам в духе « получить Продукты для Пользователя Как только этот поток завершает свою работу, информация «оседает» в основном потоке и становится доступной для отображения, а на самой веб-странице появляется некий плейсхолдер — объект, занимающий место для будущей информации.



Краткая история асинхронных функций Javascript

В этот момент страница уже отображается, несмотря на то, что некоторые запросы еще не обработаны.



Краткая история асинхронных функций Javascript

Скорее всего, где-то внизу страницы еще несколько запросов возвращают значение, а страница продолжает обновляться и отображаться динамически, без неудобств для пользователя.



ES5 и более ранние версии: обратный вызов

Прежде чем мы начнем рассматривать обратные вызовы, давайте еще раз посмотрим/выясним, что они собой представляют. функции высшего порядка .

Функция более высокого порядка в JS называется функция, которая принимает другую функцию в качестве аргумента .

Вот пример:

   

objectIsString(objectRef) {

Теги: #JavaScript #js #ecmascript #первая публикация
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.