私は書き込み可能なストリームであるモジュールを書いています。私は自分のユーザーのためのパイプインターフェイスを実装したい。パイプで読み込み可能なストリームをnodejs内の書き込み可能なストリームから一時停止する正しい方法は何ですか?
エラーが発生した場合は、読み込み可能なストリームを一時停止してエラーイベントを発生させる必要があります。次に、ユーザーはエラーが発生しても問題がなければ、データ処理を再開することができます。
var writeable = new BackPressureStream();
writeable.on('error', function(error){
console.log(error);
writeable.resume();
});
var readable = require('fs').createReadStream('somefile.txt');
readable.pipe.(writeable);
私は、ノードが読み込み可能なストリームを一時停止するために使用することができreadable.pause()
方法、を提供してくれていることがわかります。しかし、私は私の書き込み可能なストリームモジュールから呼び出すことができますどのように取得することはできません。
var Writable = require('stream').Writable;
function BackPressureStream(options) {
Writable.call(this, options);
}
require('util').inherits(BackPressureStream, Writable);
BackPressureStream.prototype._write = function(chunk, encoding, done) {
done();
};
BackPressureStream.prototype.resume = function() {
this.emit('drain');
}
どのように背圧が書き込み可能なストリームで実装することができますか?
P.S.可読ストリームをパラメータとして提供するイベントはpipe/unpipe
です。しかし、パイプストリームの場合、一時停止する唯一のチャンスは、読み取り可能なストリームを書き込み可能からアンペアすることです。
私はそれを正しくしましたか?ユーザーが再開するまで書き込み可能なストリームをアンペアする必要がありますか?そして、ユーザーの呼び出しを再開した後、私はパイプで読み込み可能なストリームを返す必要がありますか?
をバックプレッシャー処理上の別の優れたリソースですか? –
ねえ、あなたの質問に対する答えは見つかりましたか? –