为什么要在ngrx中添加SUCCESS操作

时间:2019-07-19 15:32:26

标签: angular redux ngrx

我在ngrx教程中注意到,当编写动作时,它们声明例如:

GET_MATIERES = '[matiereList] Get Matieres',
SUCCESS_GET_MATIERES = '[matiereList] Success Get Matieres',

为什么不只使用

GET_MATIERES = '[matiereList] Get Matieres',

什么时候应该使用SUCCESS动作,什么时候没用?

1 个答案:

答案 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 

尽管使用效果会导致更​​多样板代码,但它还具有链接操作的优势,例如,登录后要检索客户信息,或保存发票后要刷新发票列表