NodeJS —— 自定义流的实现

本文详细介绍了如何在NodeJS中实现自定义流,包括可读流(Readable)、可写流(Writable)、双工流(Duplex)和转化流(Transform)。通过创建继承内置类的自定义流,并重写关键方法,实现了数据的读取、写入和转化。自定义流在HTTP请求、响应、加密和进程通信等领域有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述


阅读原文


概述

常见的自定义流有四种,Readable(可读流)、Writable(可写流)、Duplex(双工流)和 Transform(转换流),常见的自定义流应用有 HTTP 请求、响应,crypto 加密,进程 stdin 通信等等。


stream 模块介绍

在 NodeJS 中要想实现自定义流,需要依赖模块 stream,直接引入,不需下载,所有种类的流都是继承这个模块内部提供的对应不同种类的类来实现的。

实现一个自定义可读流 Readable

1、创建自定义可读流的类 MyRead

实现自定义可读流需创建一个类为 MyRead,并继承 stream 中的 Readable 类,重写 _read 方法,这是所有自定义流的固定套路。

// 创建自定义可读流
const {
    Readable } = require("stream");

// 创建自定义可读流的类
class MyRead extends Readable {
   
    constructor() {
   
        super();
        this.index = 0;
    }

    // 重写自定义的可读流的 _read 方法
    _read() {
   
        this.index++;
        this.push(this.index + "");

        if (this.index === 3) {
   
            this.push(null);
        }
    }
}

我们自己写的 _read 方法会先查找并执行,在读取时使用 push 方法将数据读取出来,直到 push 的值为 null 才会停止,否则会认为没有读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值