我是Node.js世界的新手,但是赶上了。我主要阅读官方文档,因为我认为这些是最完整的文档。
最近,我正在阅读有关Node.js中的Streams的信息,并写了一个非常小的 Writable 实现,只是为了测试水域和概念。
扩展 可写 并在我的 自定义可写 上调用 write()可以正常工作精细。但是,当我尝试使用一种简化的方法,即只创建一个通过相同的小实现的 Writable 对象时,它就可以用于第一个 write(),但不适用于后续版本。这让我感到惊讶...
有人能启发我我在这里缺少什么概念吗?预先感谢。
代码
这有效
class MyWritable extends Writable {
constructor(options) {
super(options)
}
write(chunk, encoding, cb) {
console.log(`MySimpleStream wrote: ${chunk}`)
}
}
const mw = new MyWritable({decodeStrings: false})
mw.write('1')
mw.write('2')
这不适用于第二次write()调用 (请参阅控制台输出)
const myWritableSimpleObj = new Writable({
write(chunk, encoding, cb) {
console.log(`MySimpleStream wrote: ${chunk}`)
},
decodeStrings: false
})
myWritableSimpleObj.write('My simple writable stream...')
myWritableSimpleObj.write('Some more data.')
控制台输出:
nodemon] restarting due to changes...
[nodemon] starting `node src/implementWritable.js`
MySimpleStream wrote: 1
MySimpleStream wrote: 2
MySimpleStream wrote: My simple writable stream...
[nodemon] clean exit - waiting for changes before restart