gpt4 book ai didi

node.js - Nodejs Transform - 在推送之前调用回调可以被认为是好的做法吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:48 25 4
gpt4 key购买 nike

关于stream.Transform的transform函数:
可以吗,因为它不会破坏诸如背压机制之类的东西,
假设我不关心顺序,在调用push()之前调用callback(),这样我就可以同时异步处理超过1个 block ?

具体来说,我想发出异步 http 请求。我有一个“url 流”,我想 push() 处理后的结果以进行进一步处理/存储。

如果我在调用callback()之前等待请求完成,我每次只会运行1个请求。但是,如果我在请求播出时调用回调:

request.get(url, (err, res) => push(process(res)));
return callback();

我可以同时处理许多请求。

代码似乎可以工作,但我想知道我是否误用了stream.Transform,以及我是否应该为这种管道完全使用其他东西。

最佳答案

这破坏了流的设计。

如果您不关心背压或流的顺序,请不要使用流。假设您的“url 流”只是一个可读流,请直接使用它并在此时停止使用流。您可能还想考虑为什么要使用 URL 流,但我不想过多判断。

举个例子:

urlStream.on('data', (url) => {
request.get(url, (err, res) => {
// do whatever you want to do next.
});
});

关于node.js - Nodejs Transform - 在推送之前调用回调可以被认为是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52063052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com