【发布时间】:2015-12-18 14:28:45
【问题描述】:
我有这个代码:
"use strict";
var fs = require("fs");
var stream = require('readable-stream');
var Transform = require('stream').Transform,
util = require('util');
var TransformStream = function() {
Transform.call(this, {objectMode: true});
};
util.inherits(TransformStream, Transform);
TransformStream.prototype._transform = function(chunk, encoding, callback) {
if(this.push(chunk)) {
console.log("push returned true");
} else {
console.log("push returned false");
}
callback();
};
var inStream = fs.createReadStream("in.json");
var outStream = fs.createWriteStream("out.json");
var transform = new TransformStream();
inStream.pipe(transform).pipe(outStream);
in.json 的大小为 88679467 字节。 push 返回 true 的前 144 个写入状态。其余的写入(其中 1210 次)都表示 push 返回 false。
out.json 最终成为 in.json 的完整副本 - 因此没有丢弃任何字节。
这让我不知道如何处理 push 的返回值。
什么是正确的做法?
【问题讨论】:
标签: node.js