我在ngrx教程中注意到,当编写动作时,它们声明例如:
GET_MATIERES = '[matiereList] Get Matieres',
SUCCESS_GET_MATIERES = '[matiereList] Success Get Matieres',
为什么不只使用
GET_MATIERES = '[matiereList] Get Matieres',
什么时候应该使用SUCCESS
动作,什么时候没用?
答案 0 :(得分:2)
如果您想使用effects
,则需要执行success
操作,并且还需要进行fail
操作作为可选操作。
所以流程会像这样
1 - dispatch action
2 - effect catch the action
2.1 - effect calls http service
2.2 - effect dispatch success action with data received from http
3 - reducer catch the success action and updates store
如果您不想使用effects
,流程将如下所示
1 - call an angular service
1.1 - angular service calls http
1.2 - angular service dispatch action with data receives from http
2 - reducer catch the action and updates store
尽管使用效果会导致更多样板代码,但它还具有链接操作的优势,例如,登录后要检索客户信息,或保存发票后要刷新发票列表>