JS: Синхронная асинхронность
Теория: Введение
Первое, с чем мы сталкиваемся в js при работе с IO – это
колбеки, сложность использования которых резко нарастает с увеличением
зависимостей.
И мы знаем уже как минимум один способ борьбы с этой сложностью и даже
написали реализацию нескольких функций библиотеки async.
Этот способ довольно неплох, но обладает рядом недостатков. Один из
основных связан с тем, что необходимо знать большое количество разнообразных
функций на все случаи жизни. Другой – с тем, что комбинирование
функций самой библиотеки async приводит к громоздкому коду, который, к
тому же, не так просто понимать.
Оказывается, что существует ряд других способов работы с асинхронным кодом, часть из которых может быть реализована без поддержки со стороны языка.
- Promise (Futures)
- Coroutines (using Generators)
- Async/Await
В этом курсе будут подробно рассмотрены перечисленные концепции, которые
стали неотъемлемой частью современной разработки на js. В процессе
знакомства с ними мы построим библиотеку для выполнения http запросов.
Она будет основана на промисах, а использовать ее можно будет с генераторами
и async/await конструкциями.
Как видите, здесь используется новый синтаксис, но сама структура читается хорошо даже без его знания. Код выглядит линейным и не использует колбеки.
Дополнительно в курсе будет рассмотрен следующий набор тем:
- Формат данных
json - Итераторы
- Атаки в сети (CSRF)
- Модули
nodejs:querystring,url,http