0

对于这个效果,

@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 的行很好。

4

1 回答 1

3

没有理由使用这样的代码来调度操作:

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

事实上,有一个很好的理由不这样做:store订阅的 observable 将完成,并且也将看到store完整的。

在 2.2.1 版本中@ngrx/store,这不是问题——因为它的实现complete什么都不做——但是对于当前的 master,complete已经实现了,并且像上面那样调度一个动作将看到存储完成,并且不会调度进一步的动作。

于 2017-03-25T02:24:51.410 回答