首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nodejs和streams管道

nodejs和streams管道
EN

Stack Overflow用户
提问于 2017-11-27 06:21:41
回答 0查看 458关注 0票数 2

我有一个关于nodejs中的管道的问题。我有一些代码,应该显示当前目录中的文件列表,但它出乎意料地工作。

代码语言:javascript
复制
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中的文件数量相同。

为什么文件名与管道重复?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47501622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档