在NGRX / Redux中发送返回后发出一个动作

时间:2018-05-15 03:18:53

标签: angular redux ngrx ngrx-store ngrx-effects

我的Angular应用程序中有以下代码:

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id }));
}

this.empAction.emit(data)

如果我的调度(从web api执行get)返回后,如何阻止/停止我的emit函数运行,因为它更新了商店中数据的值?

1 个答案:

答案 0 :(得分:-1)

我认为存储$ .dispatch()会返回Promise或Observable。所以这是可能的解决方案。

第一个解决方案:如果是承诺

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id })).then(data => {
     this.empAction.emit(data);
   });
}

第二个解决方案:如果是Observable

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id })).subscribe(data => {
     this.empAction.emit(data);
   });
}

这将强制您的代码等到this.store $ .dispatch()中的操作被执行。