JS: Синхронная асинхронность
2026-02-26 19:05 Diff

Первое, с чем мы сталкиваемся в js при работе с IO – это колбеки, сложность использования которых резко нарастает с увеличением зависимостей.

И мы знаем уже как минимум один способ борьбы с этой сложностью и даже написали реализацию нескольких функций библиотеки async.

Этот способ довольно неплох, но обладает рядом недостатков. Один из основных связан с тем, что необходимо знать большое количество разнообразных функций на все случаи жизни. Другой – с тем, что комбинирование функций самой библиотеки async приводит к громоздкому коду, который, к тому же, не так просто понимать.

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

  • Promise (Futures)
  • Coroutines (using Generators)
  • Async/Await

В этом курсе будут подробно рассмотрены перечисленные концепции, которые стали неотъемлемой частью современной разработки на js. В процессе знакомства с ними мы построим библиотеку для выполнения http запросов. Она будет основана на промисах, а использовать ее можно будет с генераторами и async/await конструкциями.

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

Дополнительно в курсе будет рассмотрен следующий набор тем:

  • Формат данных json
  • Итераторы
  • Атаки в сети (CSRF)
  • Модули nodejs: querystring, url, http