Node.js 节点管道处理输入

Node.js 节点管道处理输入,node.js,asynchronous,node-streams,Node.js,Asynchronous,Node Streams,我正在将数据从一个文本文件传输到另一个管道,该管道正在从一些URL下载图像。现在,正如预期的那样,这会连续快速发送大量请求,远程服务器会关闭我。我只想在处理第一个块之后处理下一个块。 我的代码是: read.pipe(JSONStream.parse('*')) .pipe(es.map(function (d, cb) { download_images(x,y) .then(function(r) ...) .fail(function(r) ...)

我正在将数据从一个文本文件传输到另一个管道,该管道正在从一些URL下载图像。现在,正如预期的那样,这会连续快速发送大量请求,远程服务器会关闭我。我只想在处理第一个块之后处理下一个块。 我的代码是:

read.pipe(JSONStream.parse('*'))
.pipe(es.map(function (d, cb) {
    download_images(x,y)
       .then(function(r) ...)
       .fail(function(r)  ...)
       .fin(function(f) cb())
 })
.pipe(xyz)
由于我刚刚开始研究流,我可能错过了一个非常简单的要点,或者在我对使用流的热情中,我可能忽略了一个更好的方法

  • 超大json文件
  • 延迟下载图像

您可以在调用
下载图片()
之前调用
read.pause()
,然后在调用
cb()
之前调用
read.resume()
您可以在调用
下载图片()
之前尝试调用
read.pause()
然后调用
read.resume())
就在你调用
cb()
@idbehold之前,这是我尝试的第一件事,它似乎不起作用……我想我做了一些劣质的谷歌搜索,因为我在stackoverflow@idbehold上找到了解决方案。是的,你是对的,我必须使用read.resume和read.pause。使用async.queue允许我并行发出多个请求。这个问题现在已经解决了,如果你愿意补充的话,我可以接受你的回答