Skip to content

Instantly share code, notes, and snippets.

@bjartwolf
Created December 1, 2012 11:26
Show Gist options
  • Save bjartwolf/4181585 to your computer and use it in GitHub Desktop.
Save bjartwolf/4181585 to your computer and use it in GitHub Desktop.
blog3
var Stream = require('stream');
// Her lager vi en stream som bremser hver gang den får data
// og venter litt med å si at den er klar igjen
// Jeg ser på det som et skikkelig trangt rør
var SlowStream = function (delayInMs) {
var slowStream = new Stream();
slowStream.writable = true;
slowStream.write = function(val) {
slowStream.emit('data', val);
// Hvis en stream returnerer false, vil alle
// oppstrøms vente til den emitter drain, som jeg gjør etter 10 ms
setTimeout(function () {
slowStream.emit('drain');
} , delayInMs);
return false;
};
slowStream.end = function(val) { slowStream.emit('end'); };
return slowStream;
}
// Det sendes et end-event på slutten av en strøm, det må håndteres
// Det er flere ting som bør håndteres, slik som at den selv bør håndtere
// at oppstrøms-strømmer ikke har data, men det hopper jeg over for at det blir klarere
module.exports = SlowStream;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment