Angular服务在自身内部保存数据并处理http请求



我计划使用angular中的服务自己处理http请求,而不是向请求组件返回一个可观察对象并管理数据。这样,当一个组件请求数据时,它直接从保存它们的服务中获取数据。

因此,如果数据已经加载并且仍然是最新的(在最后一分钟内加载),它们将直接返回给请求组件。如果没有,则在返回到组件之前,数据将被加载并保存在服务中。Angular的官方教程显示,该服务返回一个可观察对象,该可观察对象将被组件订阅,而组件必须管理这些数据。

这有意义吗?

因为我有几个组件需要相同的数据,因此加载它们几次是没有意义的。此外,对于我正在制作的第一个原型,我试图避免Redux和类似的东西。

你觉得怎么样?谁能提供一个在自身内部处理http请求并管理数据的示例服务?

Thanks in advance

行为主题是你的方式。它们会记住你的数据,你可以刷新它们。


data = new BehaviorSubject<any>(null);
fetchData() {
this.http.get(...).subscribe(res => this.data.next(res));
}
// In your component
this.service.data.asObservable().subscribe(console.log);

虽然这很简单,我可以建议你看看秋田JS,这是一个为你做的库,它比Redux这样的东西更容易使用,而且也没有真正的任何复杂性

最新更新