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

Представляем асинхронные каналы

Какой? Каналы являются подобными очередными объектами (сначала в первую очередь), что их enqueue (отправлять) и … помечены JavaScript, библиотеки, async, каналами.

Какой?

Каналы – подобные очереди, как объекты (Первое в первую очередь) что их enqueue (Отправить) и Dequeue (Get) Функции асинхронные ( async ). Передавая их между асинхронными функциями, мы можем синхронизировать операции между указанными функциями.

Почему?

Допустим, мы хотим обработать большой кусок данных (Имитация несколькими параграфами LOREM-IPSUM) . Некоторые из процессов, которые мы хотим выполнять на этих данных, являются быстрыми, в то время как другие – это потребление времени (и ресурсов). Чтобы избежать подавляющей нашей инфраструктуры, мы хотим, чтобы не отправлять данные в процесс, который не готов принять новые данные. Другими словами, мы хотим реализовать заднее давление Отказ Это где Async-каналы вступают в игру.

Когда ты Отправить (или Получить ) сообщение (или из) канала, он возвращает обещание. Для Отправить Запросы, это разрешит, если канал имеет доступный буфер или (если нет), после A Получить выполняется на канале. И на противоположной стороне, а Получить Запрос будет разрешаться, если на канале появится буферическое сообщение или после Отправить Запрос сделан.

Как?

Ниже приведен пример использования async_channels Где длинные процессы моделируются по телефону спать (Функция помощника, которая возвращает обещание, которое разрешено после n секунды).

Эйл-Шалев/async_channels.

Вдохновленный каналами Go & Clojure, Async_channels предоставляет каналы как асинхронный метод связи между асинхронными функциями.

Оригинал: “https://dev.to/eyalshalev/introducing-async-channels-333n”