Нет сомнений в том, что JavaScript, несмотря на свою историю, стал одним из самых популярных языков программирования сегодня. JavaScript из-за своей асинхронной природы может представить некоторые проблемы для тех, кто новый на язык. В этой статье мы собираемся написать небольшие асинхронные программы, используя обещания и Async/ждут. Используя эти примеры, мы собираемся определить некоторые простые шаблоны, которые вы можете использовать для своих собственных программ.
Если вы новичок в JavaScript, вы можете сначала проверить мою другую Статья прежде чем читать этот.
Все примеры кода в этой статье написаны для среды узла. Если у вас нет установленного узла, вы можете увидеть приложение 1 для инструкций. Несмотря на то, что все программы написаны для узла, вы можете применять те же принципы для сценариев, работающих в браузере. Кроме того, все примеры кода для этой статьи доступны на Gitlab Отказ
Полагают ли люди, что JavaScript – это реальный язык программирования, реальность в том, что она не собирается никуда никуда в ближайшее время в ближайшее время. Если вы являетесь веб-разработчиком, вы можете провести некоторое время и изучать его хорошие и плохие части.
JavaScript – это однопотоковые и способствуют неблокирующие асинхронные потоки. Если вы новичок на языке, он может стать действительно разочарованным, когда все не работает так, как вы их ожидаете. Асинхронное программирование требует большего терпения и другого вида мышления, которые отличаются от синхронного программирования.
В синхронной модели все происходит в последовательности одно одновременно. Из-за этого легче рассуждать о программах. Но в асинхронной модели операции могут начинаться или закончить в любом порядке в любой момент времени. Из-за того, что просто полагаться на последовательность недостаточно. Асинхронное программирование требует больше мыслей с точки зрения потока и дизайна программы.
В этой статье мы собираемся исследовать пару коротких асинхронных программ. Мы собираемся начать с простых программ и работать до более сложных. Ниже приведен обзор сценариев, которые мы будем писать:
Сценарий, который пишет содержимое файла в новый файл.
Сценарий, который пишет содержимое нескольких файлов в новые файлы.
Сценарий, который разбирается и форматы файлов CSV в каталоге и выводит новый CSV Файлы в другую папку.
Давайте найдя момент и быстро рассмотрим основы обещаний и Async/ждут.
Обещания
Обещание – это объект, представляющий результат асинхронного операция.
Обещание либо разрешено с ценностью «успеха», либо отклонено с «Ошибка» ценность.
Вообще говоря, разрешенные значения доступны с аргументом обратного вызова для А
Тогда
блокировать. И отклоненные значения являются доступом с аргументом обратного вызова кпоймать
блокировать.В современных средах JavaScript вы можете получить доступ к конструктору обещания через глобальный объект как
Обещание
ОтказОбещание может быть создано с использованием
Обещание
Конструктор с использованиемНовый
ключевое слово. Это:R
Обратный вызов используется для разрешения обещания со значением иJ
Обратный вызов используется для отклонения обещания.Обещание
Конструктор имеет некоторые полезные статические методы, такие какВсе
,Гонка
,решить
иОтклонить
ОтказВсе
Метод принимает массив обещаний и попытается разрешить их все одновременно и вернуть обещание, что Решает к массиву с разрешенными значениями.Гонка
Методы принимают массив обещаний и разрешает или отклоняет первое обещание, которое заканчивается.решить
Метод создает обещание и разрешает его к данному значению.Отклонить
Метод создает обещание и отклоняет его с заданным значением.
Async/a ждать
Цель функций async/a ждать – упростить поведение использования обещает синхронно и выполнять некоторое поведение в группе обещаний. От MDN
Так же, как обещания похожи на структурированные обратные вызовы, Async/a a a a a a a a a a a a a a a a a enaiq объединять генераторы и обещания. От MDN Функция может быть помечена как асинхронная функция с
async
ключевое слово.
То есть: Async Function Hello () {}или
const () => {};Отказ
async
Функция всегда возвращает обещание. Если значение возвращается из
asyncФункция, она будет неявно завернута в обещание.
Если есть неосторожное исключение, брошенное внутриasync
Функция,
Вернувшиеся обещания отклонены исключением.ждать
Оператор может быть использован внутри
asyncФункция перед заявлениями
Это вернуть обещание. В этом случае выполнение функции «приостановлено» пока обещание не будет решено или отклонено.ждать
Оператор действителен только внутри
asyncфункция.
Вы можете прочитать остальную часть статьи на Medium.com.