Skip to content
Little state objects for javascript
JavaScript CSS
Find file
Failed to load latest commit information.
examples Added AMD modules compatibility
tests
.travis.yml updated supported node versions
README.md
package.json added engines field
statelet.js Use unused forEach polyfill for <=IE8

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

Something went wrong with that request. Please try again.