Изучая Javascript, я снова и снова натыкался на многочисленные статьи об асинхронных функциях и операциях.
Несмотря на несомненные преимущества такого функционала, меня каждый раз приводил в замешательство приведенный авторами листинг.
Слова менялись, суть оставалась прежней, в голове назревала каша.
Ниже приведен небольшой справочник по историческому развитию и версиям ECMA.
Зачем нужны асинхронные операции?
Компьютерная программа может выполнять неограниченное количество задач.Ни для кого не секрет, что веб-приложения должны работать с множеством разных задач, которые часто должны использовать одни и те же данные.
В частности, одним из наиболее распространенных примеров является отображение информации пользователю (UI) и получение информации с помощью запросов к серверу.
Неудивительно, ведь с этим сталкивается практически каждый веб-разработчик: работа с базой данных, предоставление пользовательского интерфейса, организация какого-либо API — всё это присутствует буквально в каждом тестовом задании, не только у JS-программистов.
Почему бы не выполнять команды последовательно? Зачастую нужную пользователю информацию можно получить только через значительный промежуток времени.
Если вы организуете программу как:
- Получение информации с сайта https:/some/api/item/1
- Отображение информации о первом элементе на экране.
Только представьте: страница, скажем, на Netflix или Aliexpress должна будет получить данные из сотен баз данных, прежде чем она сможет начать отображать контент пользователю.
Такая задержка будет аналогична загрузке уровня 3D-игры, и если игрок готов ждать, то пользователь сайта хочет получить как можно больше информации в этот момент. Решение было найдено: асинхронные операции .
Пока основной поток программы занят инициализацией и отображением элементов сайта на холсте, он также выводит задачи другим потокам в духе « получить Продукты для Пользователя Как только этот поток завершает свою работу, информация «оседает» в основном потоке и становится доступной для отображения, а на самой веб-странице появляется некий плейсхолдер — объект, занимающий место для будущей информации.
В этот момент страница уже отображается, несмотря на то, что некоторые запросы еще не обработаны.
Скорее всего, где-то внизу страницы еще несколько запросов возвращают значение, а страница продолжает обновляться и отображаться динамически, без неудобств для пользователя.
ES5 и более ранние версии: обратный вызов
Прежде чем мы начнем рассматривать обратные вызовы, давайте еще раз посмотрим/выясним, что они собой представляют. функции высшего порядка .Функция более высокого порядка в JS называется функция, которая принимает другую функцию в качестве аргумента .
Вот пример:
Теги: #JavaScript #js #ecmascript #первая публикацияobjectIsString(objectRef) {
-
Как Превратить Свой Блог В Blogbuster
19 Oct, 24 -
Май – 2007: О Чем Говорили Профессионалы
19 Oct, 24