关于stream.Transform的转换功能:
好吗,因为它不会破坏像背压装置这样的装置,
如果我不关心顺序,那么在调用push()之前调用回调(),这样我就可以异步地同时处理多个块了吗?
具体来说,我想提出异步http请求。我有一个"url流“,我希望将处理的结果推送到进一步的处理/存储中。
如果在调用回调()之前等待请求完成,那么每次只运行一个请求。但是,如果在播放请求时,我调用了回调:
request.get(url, (err, res) => push(process(res)));
return callback();我可以同时处理许多请求。
代码似乎有效,但我想知道我是否误用了stream.Transform,是否应该为这类管道使用其他的东西。
发布于 2018-08-28 17:47:49
这破坏了流的设计。
如果您不关心背压或流的顺序,不要使用流。假设您的"url流“只是一个可读的流,则直接使用它,并在此时停止使用流。您可能还想考虑为什么要使用URL流,但我不想过多地判断。
例如:
urlStream.on('data', (url) => {
request.get(url, (err, res) => {
// do whatever you want to do next.
});
});https://stackoverflow.com/questions/52063052
复制相似问题