Comments 16
for await (const line of readLines(filePath)) {
console.log(line)
}
Почему о генераторах говорится как о чём-то древнем и ненужном? Использую и async/await и генераторы вместе, для разных задач
Использую js observable (хорошо, хорошо, пока что использую rxjs), async/await/promise совсем иногда.
С реактом и редуксом. Redux-observable
Но это в производственной практике, дома по-обстоятельствам, но эти обстоятельства, почему-то, часто по своей природе включают в себя стримы. Ну или я начал все видеть как стримы, как завещал Роб Вормалд.
Но должен признаться, что пока некоторые конструкции получаются короткими и изящными, другие конструкции получаются огромными и неповоротливыми (считай, нечитаемыми). Но в тех же async/await/promise раздражает невозможность их отмены (cancelation), что приводит либо к обилию Promise.race, либо к более тщательной проверке что не осталось подвисшего замыкания и никакое модальное окно не выскачит вдруг неожиданно на совершенно другой странице.
await Promise.all(tasks);
Конструкция for await не в счёт. Это другой сахар.
Вообще, мой ответ — без коллбэков/промисов/генераторов. Но это не совсем верно, потому как время от времени приходится писать редаксовые саги, а там всё на генераторах. Но если решение стоит за мной, а не диктуется библиотекой — то async/await. Код куда чище получается.
Синхронный тренд JS: опрос