dop*_*man 5 node.js coffeescript
我正在尝试将字符串流式传输到另一个流:
streamer = new stream.Transform objectMode: true
stringer = (string) ->
streamer._transform = (chunk, encoding, done) ->
@push string.split('').shift()
done()
return streamer
streamer.on 'readable', ->
console.log 'readable'
stringer('hello').pipe process.stdout
Run Code Online (Sandbox Code Playgroud)
但是控制台中没有任何日志。我究竟做错了什么?
小智 8
在 Node 10.x 中,Readable.from添加了便捷方法,这使得实现起来更加简单。
const Readable = require('stream').Readable;
Readable.from('hello').pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)
正如您自己所说,您需要的是可读流而不是转换流。此外,您还有一个错误,因为string.split('')总是返回相同的数组,然后.shift()总是返回相同的字母。重写后的代码如下:
'use strict'
Readable = require('stream').Readable
stringer = (string) ->
array = string.split('')
new Readable
read: (size) ->
@push array.shift()
return
readable = stringer('hello')
readable.on 'readable', ->
console.log 'readable'
return
readable.pipe process.stdout
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11454 次 |
| 最近记录: |