Node.js的可写流和漏事件
该documentation for write()说:
返回false指示内核缓冲区已满,数据将在未来被发送出去。
并为drain
事件的文件说:
经过write()方法返回false,发出此事件,以表明它是安全的再次写入。
这意味着什么?我必须等待之前,我可以再次写入drain
事件?发生了什么事,我试着写数据?是失去了什么?当我打电话写,而无需等待drain
事件会发生什么?
您可以拨打write()
没有安全关心的返回值。节点将任何缓冲写入调用而内核缓冲区已满,为了你所期望推动它们。你不需要再在写之前等待'drain'
事件。
或者,您可以检查write()
的返回值,然后通知被写入流缓冲区已满的东西。这正是Stream#pipe()
does。
所以通常情况下,只需使用Stream#pipe()
和所有的好东西都对你照顾:)