@wiz-code/async-fsm
Version:
Finite StateMachine JavaScript Library
46 lines (38 loc) • 1.09 kB
JavaScript
var events = require('events');
var _ = require('underscore');
var FSM = require('../src');
FSM.logger.disable();
FSM.globalize();
var emitter = new events.EventEmitter();
var m = new Machine('my-machine');
var s1 = new State('s1', {
entryAction: function () {
console.log('entryAction::', this.getName());
emitter.on('immediate', function () {
s1ToS2.trigger();
});
Promise.resolve().then(function () {
emitter.emit('immediate');
});
/*process.nextTick(function () {
emitter.emit('immediate');
});*/
},
doActivity: function () {
console.log('doActivity:: ', this.getName());
},
});
var s2 = new State('s2', {
entryAction: function () {
console.log('entryAction::', this.getName());
},
doActivity: function () {
console.log('doActivity:: ', this.getName());
},
});
m.addState(s1, s2);
var t1 = new FSM.Transition(false, false, s1);
var s1ToS2 = new FSM.Transition(false, s1, s2);
m.addTransition(t1, s1ToS2);
m.deploy();
m.start();