Pull to refresh

Comments 16

Наряду с асинхроными итераторами:

for await (const line of readLines(filePath)) {
  console.log(line)
}
Забыл их включить в список опций, спасибо!

Почему о генераторах говорится как о чём-то древнем и ненужном? Использую и async/await и генераторы вместе, для разных задач

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

Использую js observable (хорошо, хорошо, пока что использую rxjs), async/await/promise совсем иногда.

rxjs с Angular или отдельно?

С реактом и редуксом. Redux-observable


Но это в производственной практике, дома по-обстоятельствам, но эти обстоятельства, почему-то, часто по своей природе включают в себя стримы. Ну или я начал все видеть как стримы, как завещал Роб Вормалд.


Но должен признаться, что пока некоторые конструкции получаются короткими и изящными, другие конструкции получаются огромными и неповоротливыми (считай, нечитаемыми). Но в тех же async/await/promise раздражает невозможность их отмены (cancelation), что приводит либо к обилию Promise.race, либо к более тщательной проверке что не осталось подвисшего замыкания и никакое модальное окно не выскачит вдруг неожиданно на совершенно другой странице.

мне кажется, скорее за промисы – по стилю и духу они по-моему ближе всего
async await позволяет писать очень милый псевдо-синхронный код. Но в случае сложных конструкций без bluebird никуда — иначе никак не сделаешь нормально map+concurrency, delay, timeout, reduce и так далее. К счастью, они очень мило интегрируются, чем мы и пользуемся.
это действительно мило
Что-то я не совсем понимаю как async/await без промисов использовать если он сахар для промисов. Довольно стандартный код:
await Promise.all(tasks);

Конструкция for await не в счёт. Это другой сахар.
для краткости «без промисов» означало здесь «без промисов в явной форме с использованием then/catch вместо присваивания»… const a = await(p) противопоставляется p.then(a => doSomething(a)) как императивный синхронный стиль функциональному асинхронному; разумеется возможны переходные и смешанные формы; здесь речь о граничных случаях
Теперь понятнее, проголосовал.
Вообще, мой ответ — без коллбэков/промисов/генераторов. Но это не совсем верно, потому как время от времени приходится писать редаксовые саги, а там всё на генераторах. Но если решение стоит за мной, а не диктуется библиотекой — то async/await. Код куда чище получается.
Sign up to leave a comment.

Articles