来自http.request的响应如何在两个可写入stream的情况下工作?

基本上,我有一个来自http.request的回应。 我必须写两个可写的stream,我有一些问题:

当我在做

response.pipe(writable1); // Will write very fast response.pipe(writable2); // Will write slowly 
  • 我发送两个获取响应的来源(使用双带宽)?
  • 这个代码可以有一些内存问题吗? 如果是这样,究竟在哪里?
  • 有一件事情我不清楚,是否必须手动closures响应,还是我可以相信nodejs会closures它?

回答你的问题:

  1. 不,只有一个来自response的数据副本。 数据只会像response被传送到的最慢的数据stream一样快,正如在写入pipe道stream节目的代码中可以看到的那样。

  2. 不,stream缓冲区内存只有缓冲区,直到反压启动。当可写stream不能处理更多的数据, write()将返回false,导致response停止从套接字读取数据,直到任何可写stream其内部缓冲区已耗尽。

  3. 您不要手动closures响应。 它最终将没有更多的数据可用,并将在那个时候结束,closures它已经连接到的任何stream。