依然用上次的数列实现。
这次包含一个读流对象,一个写流对象。
全部代码
/**
* 用流来实现斐波那契数列
*
* @author yyy
*/
var stream=require('stream');
var util=require('util');
// -------------- 下面是可读流 -----------------
function StreamChildRead(n)
{
this.a=0;
this.b=1;
this.n = n;
stream.Readable.call(this);
}
util.inherits(StreamChildRead, stream.Readable );
// 覆盖父类的方法
StreamChildRead.prototype._read = function(){
this.push( this.a.toString());
this.push( this.b.toString());
for(let i=2;i<= this.n+1-2;i++) {
[this.a, this.b] = [this.b, this.a+this.b];
this.push( `${this.b}` );
}
this.push(null);
};
// --------------- 下面是可写流 --------------
function StreamChildWrite()
{
this.count=0;
stream.Writable.call(this);
}
util.inherits(StreamChildWrite, stream.Writable );
// 覆盖父类的方法
StreamChildWrite.prototype._write = function(chunk,encoding,callback){
process.stdout.write( ('f('+ this.count++) +"):"+ chunk.toString()+'\n');
callback();
};
(new StreamChildRead(10)).pipe(new StreamChildWrite());
输出如下所示:
f(0):0
f(1):1
f(2):1
f(3):2
f(4):3
f(5):5
f(6):8
f(7):13
f(8):21
f(9):34
分享到:
相关推荐
流又分为四种类型:可读流、可写流、双工流和转换流。后两种其实是对可读和可写流的应用。所以我想先聊聊可读流和可写流。 可读流 可读流有两种模式,并随时可以转换,我们可以通过监听可读流的事件来操作它。 两种...
流(Stream)在 Node.js 中被设计为可读、可写或同时具备这两种能力的对象。它们允许数据以块(chunk)的形式进行处理,而不是一次性加载整个数据集,这大大降低了内存占用并提高了性能。单向流意味着数据只能从源流...
可写流用于消费数据,通常接收可读流输出的数据,并将数据写入目标对象中。可写流的使用中,一个关键的事件是`drain`,该事件表明当前写入操作完成,可以向可写流中继续写入数据。 3. **DuplexStream(双工流)** ...
Stream 可以分为可读流(Readable Stream)、可写流(Writable Stream)和 Duplex 流(Duplex Stream),每种流都有其特点和应用场景。 可读流(Readable Stream) 可读流是指可以从中读取数据的流。例如,`fs....
- 可读流用于接收数据,如文件读取或网络请求。它们通过事件触发机制来提供数据,例如"data"事件。 - 使用`read()`方法或者监听"data"事件来获取数据块。 - `Readable`流可以通过`pipe()`方法连接到`Writable`流...
`stream` 模块定义了不同类型的流,如可读流、可写流、双工流等,它们可以组合使用以构建复杂的流数据处理管道。 5. **进程与模块管理**:Node.js 提供了 `child_process` 模块,可以创建子进程执行命令,进行进程...
流分为可读、可写、Duplex和Transform四种类型,广泛应用于网络请求、文件操作等场景。 6. **文件系统(fs)**:Node.js提供了丰富的文件系统API,如读取、写入、创建、删除文件等,这些API都是非阻塞的,便于进行...
8. **流处理**:Node.js的流API使得处理大量数据变得高效,讲解如何创建和使用可读、可写、可Duplex和Transform流。 9. **包管理器NPM**:介绍npm(Node Package Manager)的使用,包括安装、发布和管理依赖包,...
流分为可读、可写、 Duplex 和 Transform 四种类型,可以组合使用实现复杂的数据处理。 8. **文件系统(File System,简称FS)**: Node.js 提供了对文件系统的操作接口,可以进行读写、创建、删除文件等操作,...
### Node.js 中文文档知识点概览 #### 一、总述(Synopsis) ...以上概述了Node.js中文文档中提到的主要知识点,包括核心概念、内置模块、API使用方法等,为深入学习和应用Node.js打下了坚实的基础。
9. **Promise和async/await**: 虽然Node.js最初主要使用回调函数处理异步操作,但现代版本已经引入了Promise和async/await,提供更简洁和易读的异步控制流。 10. **WebSocket**: 如果源代码包含WebSocket相关内容,...
- **流处理**:深入讲解Node.js中的流处理技术,包括可读流、可写流、双向流等。 #### 三、作者简介 - **Mario Casciaro**:软件工程师兼企业家,热衷于技术和开源知识。拥有软件工程硕士学位,在IBM工作多年,参与...
1. `stdin`:标准输入是一个可读流,用于接收来自用户的输入数据。 2. `stdout`:标准输出是一个可写流,用于将程序的输出数据发送到屏幕或文件。 3. `stderr`:标准错误输出流,用于输出错误信息,通常与`stdout`...
本章详细介绍了如何使用Stream API进行流式数据处理,包括可读流、可写流、双向流和转换流的概念及其用法。 - **构建TCP服务器**(第十章) - 介绍了如何使用net模块构建TCP服务器和客户端,以及如何处理连接、数据...
8. **流(Stream)**:讲解了Node.js中的流数据处理,包括可读流、可写流、Duplex流和Transform流的使用场景和操作方式。 9. **中间件(Middleware)**:如Express框架中的中间件概念,以及如何编写和使用中间件。 10. *...
Stream 模块提供了可读、可写、可读可写以及转换流等多种类型,可以满足不同场景下的数据流处理需求。 在使用 Node.js 内建模块时,建议查阅官方文档以获得最准确的信息。在 Node.js 官网(***)上,可以找到对应...
流分为可读流、可写流、双工流和转换流四种类型。 7. **Promise和async/await**:Node.js从版本7开始引入Promise,从版本8开始支持async/await,为异步编程提供了更优雅的解决方案,降低了回调地狱带来的复杂性。 ...
Node.js 的官方文档中文版是学习和掌握这一技术的重要资源,涵盖了从基础概念到高级特性的全面教程。 一、基础篇 1. **安装与更新**:Node.js 可以通过官方网站下载安装,提供了多种操作系统平台的支持。文档会详细...
Node.js的流API是处理数据流的核心,支持读、写、Duplex和Transform四种流类型。在v0.10.26中,流广泛应用于网络传输、文件读写等场景,提高了数据处理的效率。 8. **错误处理** 错误处理是任何软件开发中的重要...