首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >streams2可写--有没有办法定义一个"_end“函数?

streams2可写--有没有办法定义一个"_end“函数?
EN

Stack Overflow用户
提问于 2013-04-02 22:17:47
回答 1查看 103关注 0票数 3

我对node.js的新的streams2应用程序接口感到有点困惑。我尝试创建一个Writable流,但我找不到一种方法来定义"_end“函数。只有"_write"-function是我可以覆盖的。文档中也没有任何内容告诉我如何做。

我正在寻找一种方法来定义一个函数,在有人对它调用mystream.end()之后,它可以正确地关闭流。

我的流写入另一个流,并且在关闭我的流之后,我还希望在发送所有数据之后关闭底层流。

我该怎么做呢?

它是如何看起来的:

代码语言:javascript
复制
var stream = require("stream");

function MyStream(basestream){
    this.base = basestream;
}
MyStream.prototype = Object.create(stream.Writable);
MyStream.prototype._write = function(chunk,encoding,cb){
    this.base.write(chunk,encoding,cb);
}
MyStream.prototype._end = function(cb){
    this.base.end(cb);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-02 23:37:15

您可以监听流上的finish事件,并使其调用_end

代码语言:javascript
复制
function MyStream(basestream) {
  stream.Writable.call(this); // I don't think this is strictly necessary in this case, but better be safe :)
  this.base = basestream;
  this.on('finish', this._end.bind(this));
}

MyStream.prototype._end = function(cb){
  this.base.end(cb);
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15766475

复制
相关文章

相似问题

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