Что касается функции преобразования stream.Transform:
Это нормально, поскольку она не сломает что-то вроде механизма обратного давления,
и, предполагая, что меня не волнует порядок, чтобы вызвать callback() перед вызов push(), чтобы я мог асинхронно обрабатывать более 1 фрагмента одновременно?
В частности, я хотел бы делать асинхронные HTTP-запросы. У меня есть «поток URL-адресов», и я хочу push() обработанных результатов для дальнейшей обработки/хранения.
Если я буду ждать завершения запроса перед вызовом callback(), каждый раз у меня будет выполняться только 1 запрос. Если, однако, я вызываю обратный вызов, пока запрос находится в эфире:
request.get(url, (err, res) => push(process(res)));
return callback();
Я могу обрабатывать много запросов одновременно.
Код похоже работает, но мне интересно, не злоупотребляю ли я stream.Transform и должен ли я использовать что-то совершенно другое для конвейера такого типа.