Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js创建一个直通流,该流在接收到结束事件后读入文件_Javascript_Node.js - Fatal编程技术网

Javascript Node.js创建一个直通流,该流在接收到结束事件后读入文件

Javascript Node.js创建一个直通流,该流在接收到结束事件后读入文件,javascript,node.js,Javascript,Node.js,我想为这种用例创建一个流: foo() .pipe(readFileIn('file.name')) .pipe(bar()); foo是一个函数,它将文件写入磁盘,完成后发出“end”。一旦foo的流完成,我需要将该文件作为流从磁盘读入,这样我就可以将它导入下一个处理程序 如何创建执行此操作的流?您可以将管道()数据同时发送到foo和bar,只要您在结束事件之前管道()。e、 g var fs = require('fs'); var myDataSource = some.readabl

我想为这种用例创建一个流:

foo()
.pipe(readFileIn('file.name'))
.pipe(bar());
foo
是一个函数,它将文件写入磁盘,完成后发出
“end”
。一旦
foo
的流完成,我需要将该文件作为流从磁盘读入,这样我就可以
将它导入下一个处理程序

如何创建执行此操作的流?

您可以将
管道()
数据同时发送到
foo
bar
,只要您在
结束
事件之前
管道()
。e、 g

var fs = require('fs');

var myDataSource = some.readable.stream();
var foo = fs.createWriteStream('foo.txt');
var bar = some.writable.stream();

foo.on('finish', function () {
  console.log('file written to disk');
});

myDataSource.pipe(foo);
myDataSource.pipe(bar);

我认为这不符合我的用例。我想要一个可以通过管道进出的直通流,它只有在我收到第一个流的
“end”
事件后才能读取文件。因此,在我上面的例子中,我试图弄清楚如何实现
readFileIn
当然,但是为什么要等待
finish
事件呢?因为我试图读入的文件在
foo
finishesIf
foo
生成文件内容之前不存在,您可以
pipe()
将这些内容直接发送到
,同时也将
管道()
发送到磁盘上的文件。我想您需要澄清文件内容的来源。因此我无法控制
foo
,它只是我正在使用的一个API。不幸的是,它不会发出带有文件内容的
“data”
事件,但会发出
“end”
事件。我所知道的只是文件创建的时间和保存到的位置。