我是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
,但是为什么呢?
答案 0 :(得分:1)
动作FeedAnimals使用注入的服务AnimalService来填充在动作有效负载中传递的动物。假定服务是异步操作的,并返回一个Observable。该Observable的值可通过tap函数访问,并用于根据成功完成更新ZooState状态上下文。
要专门使用NGXS和通常使用Angular,您真的必须了解RxJS ... here's my goto doc page for it