Рубрики
Без рубрики

Написание асинхронных программ в JavaScript

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

Автор оригинала: AJ Meyghani.

Нет сомнений в том, что 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.