我使用process.stdin.read()
处理readable
事件来处理文本行。在我的例子中,它一次返回一行或所有输入文本。
这可靠吗?换句话说,它可能会返回一半的线?
关键要求是尽快处理,而不是在收集所有输入数据时等待。
答案 0 :(得分:0)
看看event-stream
的分裂。它用于处理基于行的缓冲。
https://github.com/dominictarr/event-stream#simple-example
var es = require('event-stream')
var inspect = require('util').inspect
process.stdin //connect streams together with `pipe`
.pipe(es.split()) //split stream to break on newlines
.pipe(es.map(function (data, cb) { //turn this async function into a stream
cb(null
, inspect(JSON.parse(data))) //render it nicely
}))
.pipe(process.stdout) // pipe it to stdout !