fsm-as-promised: passing data between event handlers

node v4.9.1
version: 1.0.1
endpointsharetweet
var StateMachine = require('fsm-as-promised'); var assert = require('assert'); var fsm = StateMachine({ initial: 'stopped', events: [{ name: 'start', from: 'stopped', to: 'started' }], callbacks: { onleavestopped: function(opts) { opts.foo = opts.args[0]; return opts; }, onleave: function(opts) { assert(opts.foo === 0); opts.foo++; return opts; }, onstart: function(opts) { assert(opts.foo === 1); opts.foo++; return opts; }, onenterstarted: function(opts) { assert(opts.foo === 2); opts.foo++; return opts; }, onenter: function(opts) { assert(opts.foo === 3); opts.foo++; return opts; }, onenteredstarted: function(opts) { assert(opts.foo === 4); opts.foo++; return opts; }, onentered: function(opts) { assert(opts.foo === 5); opts.foo++; return opts; } } }); fsm.start(0) .then(function(opts) { assert(opts.foo === 6); console.log(fsm.current); });
Loading…

no comments

    sign in to comment