【发布时间】:2016-04-26 14:05:20
【问题描述】:
我想在两个独立的 Koa 中间件中多次(两次)使用 NodeJS 请求流,因此我在其“数据”事件中添加了侦听器。它现在可以工作,但是我担心它背后存在竞争条件,因为 - 根据文档 - 添加第一个事件处理程序后,一旦有任何可用数据,流就会开始调用它。如果订阅之间有其他代码,是否会发生第二个事件侦听器没有收到所有块?还是以某种方式避免(如何?)?
谢谢!
【问题讨论】:
-
你可以
.pause()一个流(不会发出data事件),附加你的事件监听器,然后.resume()它。暂停时,数据将累积在内部缓冲区中,直到您恢复它。 nodejs.org/api/stream.html#stream_readable_pause 和 nodejs.org/api/stream.html#stream_readable_resume
标签: javascript node.js stream request koa