我对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中的文件数量。
为什么文件名与管道重复?