我想将内容传递给文件。这是我写的:
var fs = require('fs');
var Readable = require('stream').Readable;
var ws = fs.createWriteStream('xfiles.txt');
var rs = new Readable;
ws.on('finish', function() {
console.log('Written ' + ws.bytesWritten + ' ' + ws.path);
});
rs.push('foo bar baz');
rs.push('foo bar baz');
rs.push('foo bar baz');
rs.push(null);
rs.pipe(ws);
ws.end();
我希望xfiles.txt有3行' foo bar baz'。但输出告诉我写了0个字节,当我检查xfiles.txt时它是空的。
我想念什么?
修改
抱歉,在发布此问题后立即找到答案。 this SO question中的答案解决了我的问题。
答案 0 :(得分:0)
在发布此问题后立即找到答案。 This SO question的答案也解决了我的问题。
我要做的是在流完成异步操作后调用ws.end()
。所以我必须把它放在回调中:
ws.on('end', function() {
ws.end();
});