stalker-pattern
v0.1.1
Published
Stalker is Javascript pattern with a promise-like syntax streaming but in which the whole stream is re-triggerable like an event.
Downloads
6
Maintainers
Readme
stalker-pattern
Stalker-pattern is a Javascript pattern with a promise-like syntax streaming but in which the whole stream is re-triggerable like an event. Additionally it also supports synchronous triggering.
##API A basic notion of Promises will help you easily understand this pattern.
Basics
var Stalker = require('stalker-pattern');
var myStalker = new Stalker(function(trigger){
trigger("hi!");
});
myStalker.follow(function(result){
console.log(result); //prints "hi!"
});
Chaining stalkers
var myStalker = new Stalker(function(trigger){
trigger(new Stalker(function(t){
t("More complex");
setTimeout(function(){
t("Async");
})
}));
}).follow(function(result){
return new Stalker(function(t2){
t2(result+" hi!");
});
}).follow(function(result){
// prints "More complex hi!",
// and then on next tick prints "Async hi!"
console.log(result);
});
Piping only a few occurrences
new Stalker(function(trigger){
trigger(1);
trigger(2);
trigger(3);
trigger(4);
}).from(1).to(3).follow(function(number){
console.log(number); //prints 1,2,3
return number;
}).the(2).follow(function(number){
console.log(number); //prints 2
return number;
}).first().follow(function(number){
console.log(number); //prints 2
});
//stack prints:
//1, 2, 3, 2, 2
Note: In the case above "1","2","3" all fire in the first follow() before "2" is propagated down to the 2nd follow(). This is the default behaviour of Stalker for syncrounous triggering