Little state objects for javascript
JavaScript CSS
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
tests
.travis.yml
README.md
package.json
statelet.js

README.md

Statelet

Build Status

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. You can use it as either AMD or CommonJS style module.

Install

npm install statelet

To do

  • make sure examples have decent cross-browser support
  • more examples

License

MIT