Ich schreibe ein Modul, das ein beschreibbarer Stream ist. Ich möchte eine Pipe-Schnittstelle für meine Benutzer implementieren.Was ist eine korrekte Möglichkeit, pipe-lesbare Datenströme von schreibbaren in nodejs anzuhalten?
Wenn ein Fehler auftritt, muss ich den lesbaren Stream pausieren und ein Fehlerereignis ausgeben. Dann wird der Benutzer entscheiden - wenn er mit einem Fehler in Ordnung ist, sollte er in der Lage sein, mit der Datenverarbeitung fortzufahren.
var writeable = new BackPressureStream();
writeable.on('error', function(error){
console.log(error);
writeable.resume();
});
var readable = require('fs').createReadStream('somefile.txt');
readable.pipe.(writeable);
Ich sehe, dass der Knoten liefert uns readable.pause()
Verfahren, das verwendet werden kann lesbaren Stream zu unterbrechen. Aber ich kann nicht, wie ich es von meinem beschreibbar Stream-Modul aufrufen können:
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');
}
Wie Gegendruck kann in einem beschreibbaren Strom umgesetzt werden?
P.S. Es ist möglich, pipe/unpipe
Ereignisse zu verwenden, die einen lesbaren Stream als Parameter bereitstellen. Es wird jedoch auch gesagt, dass für Pipe-Streams die einzige Möglichkeit zum Pausieren darin besteht, lesbare Datenströme von schreibbaren zu entfernen.
Habe ich es richtig gemacht? Ich muss meinen schreibbaren Stream entfernen, bis Benutzeraufrufe fortgesetzt werden? Und nachdem Benutzeranrufe fortgesetzt werden, sollte ich den lesbaren Strom zurückleiten?
interessiert eine Prämie für diese in zu beginnen? –
Hey, hast du eine Antwort auf deine Frage gefunden? –