NGXS状态文档

时间:2018-10-31 10:31:38

标签: ngxs

我是NGXS的新手,我试图全面了解这些文档,以便在知道自己在做什么的情况下开始使用它。

here的这段代码中,我不了解一件事。

export class ZooState {
  constructor(private animalService: AnimalService) {}

  @Action(FeedAnimals)
  feedAnimals(ctx: StateContext<ZooStateModel>, action: FeedAnimals) {
    return this.animalService.feed(action.animalsToFeed).pipe(tap((animalsToFeedResult) => {
      const state = ctx.getState();
      ctx.setState({
        ...state,
        feedAnimals: [
          ...state.feedAnimals,
          animalsToFeedResult,
        ]
      });
    }));
  }
}

在此代码下面,它说:

  

您可能会注意到我返回了Observable,只是轻按了一下。 如果我们   返回Observable,框架将自动订阅   ,所以我们不必自己处理。另外,   如果我们只希望商店分派功能能够完成   一旦操作完成,我们需要返回该值,以便知道   那个。

该框架将订阅this.animalService.feed,但是为什么呢?

1 个答案:

答案 0 :(得分:1)

动作FeedAnimals使用注入的服务AnimalService来填充在动作有效负载中传递的动物。假定服务是异步操作的,并返回一个Observable。该Observable的值可通过tap函数访问,并用于根据成功完成更新ZooState状态上下文。

要专门使用NGXS和通常使用Angular,您真的必须了解RxJS ... here's my goto doc page for it