我正在尝试学习流,并且在使其正常工作方面遇到了一些问题。
对于此示例,我只想将静态对象推送到流中,并将其通过管道传递给服务器响应。
到目前为止,这是我所拥有的,但是很多都行不通。如果我什至可以只将流输出到控制台,就可以弄清楚如何将其通过管道传递给我的响应。
var Readable = require('stream').Readable;
var MyStream = function(options) {
Readable.call(this);
};
MyStream.prototype._read = function(n) {
this.push(chunk);
};
var stream = new MyStream({objectMode: true});
s.push({test: true});
request.reply(s);
最佳答案
您当前的代码有几个问题。
Readable
构造函数,因此您的错误不会造成任何麻烦,但是从语义上来说这是错误的,并且不会产生预期的结果。 Readable
的构造函数,但不要继承原型(prototype)属性。您应该使用 util.inherits()
继承Readable
。 chunk
变量。 这是一个工作示例:
var util = require('util');
var Readable = require('stream').Readable;
var MyStream = function(options) {
Readable.call(this, options); // pass through the options to the Readable constructor
this.counter = 1000;
};
util.inherits(MyStream, Readable); // inherit the prototype methods
MyStream.prototype._read = function(n) {
this.push('foobar');
if (this.counter-- === 0) { // stop the stream
this.push(null);
}
};
var mystream = new MyStream();
mystream.pipe(process.stdout);
关于javascript - 如何实现基本 Node Stream.Readable示例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20709063/