Node.js可写流

时间:2019-01-14 05:31:43

标签: node.js node.js-stream

我是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

0 个答案:

没有答案