订阅(商店)和派遣之间的区别?

时间:2017-03-24 20:03:15

标签: ngrx ngrx-effects

对于这种效果,

@Effect()
triggerOtherAction$: Observable<Action> = this.actions$
  .ofType(SOME_ACTION)
  .do(() => console.log("This line works for both"))
  .map(() => new OtherAction())

当我发出动作时,我可以想到这两种方式

第一,

Observable.of(new SomeAction()).subscribe(this.store);

第二

this.store.dispatch(new SomeAction());

上面两行有什么区别?对于第一个,它不会触发其他操作,但执行do()行并且reducer运行良好。

1 个答案:

答案 0 :(得分:2)

没有理由使用以下代码调度操作:

Observable.of(new SomeAction()).subscribe(this.store);

事实上,有充分的理由不这样做:store订阅的观察结果将完成,store也会完整。

@ngrx/store的2.2.1版本中,这不是问题 - 因为complete的实现没有做任何事情 - 但是使用当前的主人complete is implemented并发送一个如上所述的操作将看到商店已完成,并且不会发送进一步的操作。