statelet
v0.3.0Statelet
Sometimes we have a pattern like:
if (is_ready) {
// do the thing
}
else {
// put into a queue and execute when is_ready=true
}
Events make it better:
emitter.on('ready', function () {
// do the thing
});
But what if you start listening too late and you miss the event? You'll be waiting forever...
statelet
takes a different approach where instead of listening for events we're watching for changes in state:
is_ready.when(true, function () {
// do the thing
});
Combining States
Sometimes you want to know when multiple states align in a certain way.
var State = require('statelet');
var is_happy = new State();
var knows_it = new State();
var action = new State();
function onChange () {
var youre_happy = is_happy.get();
var you_know_it = knows_it.get();
if (youre_happy && you_know_it) {
action.set('clap your hands');
}
}
is_happy.watch(onChange);
knows_it.watch(onChange);
Where can I use it?
Works in both node.js and browser.
Install
npm install statelet
To do
- make sure examples have decent cross-browser support
- more examples
License
MIT
npm i statelet
Source Code
github.com/joshwnj/statelet....Metadata
- Unknown
- *
- Josh Johnston
- released 8/22/2012