node.js でストリームがますます一般的になってきているので、ストリームについて深く理解しようとしています。JSONStreamやevent-streamなどの一般的なモジュールのコードを調べ、 stream-handbookを読みました。
まだわからないことが一つあります。以下のパターンを時々見かけます。
main.js:
var module = require('./module')
module('something').pipe(process.stdout)
モジュール.js:
var Stream = require('stream')
module.exports = function(string) {
var stream = new Stream()
stream.readable = true
stream.resume = function() {
stream.emit('data', string)
stream.emit('end')
}
process.nextTick(stream.resume)
return stream
}
pipe
内の関数を探すので、これは本当に紛らわしいと思いますmodule.js
。この例では、この 1 行process.nextTick()
を探して、呼び出された関数を見つける必要があります。初心者の場合process.nextTick()
、モジュールが何をするのかを理解していない可能性があります。
このパターンは、ストリーミング モジュールを作成するためのある種の「ベスト プラクティス」ですか? 内にロジックを実装しないのはなぜstream.pipe = function(dest){}
ですか?