理解状态机
状态机的四大概念。
第一个是 State ,状态。一个状态机至少要包含两个状态。例如上面自动门的例子,有 open 和 closed 两个状态。
第二个是 Event ,事件。事件就是执行某个操作的触发条件或者口令。对于自动门,“按下开门按钮”就是一个事件。
第三个是 Action ,动作。事件发生以后要执行动作。例如事件是“按开门按钮”,动作是“开门”。编程的时候,一个 Action 一般就对应一个函数。
第四个是 Transition ,变换。也就是从一个状态变化为另一个状态。例如“开门过程”就是一个变换。
这在大多数工程实现上都会用到,比如一个基本的表单提交,
状态:填写状态,提交中,提交成功,提交失败
事件:提交,收到服务器返回结果
动作: 发送信息给服务器,表单校验
第四个变换长长用在transition的捕捉上,比如Promise对象从pending到reject或者fullield,在变换时调用一个回调函数。