问题
I understand that node.js is a single thread and is a single process in the memory, I'm working on a project employing state machine and wondering how that will work in this context. I'm feeling the states will be shared across users because it's a single thread or a single process. Calling out for directions/advices.
let's say I've state A, state B, state C
Application can only transition in this sequence, A -> B -> C
Initial state is A,
user 1 requests and as a result the state machine moves to state B and then finally state C
user 2 requests, will the state machine for this new user be in state A or state C?
回答1:
This article has a very interesting approach on how to deal with the FSM abstraction under an event based environment.
http://www.robert-drummond.com/2015/04/21/event-driven-programming-finite-state-machines-and-nodejs/
See also:
- https://gist.github.com/podefr/1312642
- http://machina-js.org/
- https://github.com/fschaefer/Stately.js/
- https://github.com/jakesgordon/javascript-state-machine
回答2:
If you know about Stateless C# and experience, you can use Stateless npm porting for TypeScript/JavaScript: https://www.npmjs.com/package/stateless
来源:https://stackoverflow.com/questions/26396917/node-js-with-a-statemachine