我是 NGXS 的新手,我正在尝试完全理解这些文档,这样我就可以在知道自己在做什么的情况下开始使用它。
在此处的此代码段中,我有一件事我不明白。
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,框架会自动为我们订阅它,所以我们不必自己处理。此外,如果我们希望 store dispatch 函数只有在操作完成后才能完成,我们需要返回它以便它知道。
框架将订阅this.animalService.feed
,但为什么呢?