UNPKG

@wiz-code/async-fsm

Version:

Finite StateMachine JavaScript Library

46 lines (38 loc) 1.09 kB
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();