我有一个关于nodejs中的管道的问题。我有一些代码,应该显示当前目录中的文件列表,但它出乎意料地工作。
const { Transform, PassThrough, Readable } = require("stream");
const fs = require("fs");
const config = {distPath: '.',scanPath: '.'};
let writeStream = process.stdout;
let pass = new PassThrough();
fs.readdir(config.scanPath, (err, files) => {
files.forEach(file => {
let filename = new Readable();
filename.push(file + "\n");
filename.push(null);
filename.pipe(pass).pipe(writeStream);
});
});首先,我知道如何更改代码才能正确工作。我只想知道为什么这段代码会这样工作。
代码很简单,一个可写的流,循环中的许多可读流都希望通过PassTrough向其中写入数据。如果我将删除管道,所有工作都像预期的那样。我看到了当前目录中的文件列表。但使用管道时,所有名称的重复次数与目录+ 1中的文件数量相同。
为什么文件名与管道重复?
https://stackoverflow.com/questions/47501622
复制相似问题