2013-10-28 26 views
0

我想知道一个好的解决方案是保持节点应用程序运行,直到可读流已关闭。因此,在一个简单的例子,比如这个:如何在流打开时保持节点应用程序运行?

var tcpVideoStream = new TcpVideoStream(options); 
var writeStream = fs.createWriteStream(options.fileName); 
tcpVideoStream.pipe(writeStream); 

怎样才能让我的应用程序的运行,以便它继续写流数据文件,直到读取数据流,tcpVideoStream在这种情况下,关闭?即发出'结束'或'关闭'。

谢谢!

+0

将布尔值设置为false,并且当可读流结束时将其设置为true。每当您尝试写入数据时,请确保布尔值仍然为false,以确保可读流仍处于打开状态。 – Markasoftware

回答

1

在数据完全传输之前,您的应用程序将不会关闭。只有可读流保持不变,您的应用程序才会关闭,例如没有data事件监听器,或者您没有调用resume()(如果它已经暂停)。使用pipe()就像添加一个data侦听器。

例如,这将退出而没有输出。

var fs = require('fs'); 

var read = fs.createReadStream('./src'); 
var write = fs.createWriteStream('./dest'); 
read.pause(); 

read.on('data', function(chunk) { 
    console.log(chunk); 
}); 
+0

它是一个非常好的解决方案... –

相关问题