使用 RxJs 在 Angular Service 中缓存数据
阅读需要 1 分钟
在接口返回的数据不会变化的场景下,前端第一次请求接口获取数据后缓存到前端,下次请求时直接返回缓存,已达到减少请求次数的目的。
service.ts
1
2
3
4
5
6
7
8
9
10
11
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { shareReplay } from 'rxjs/operators';
@Injectable()
export class ShareReplayDataService {
getData$ = this.http.get('https://jsonplaceholder.typicode.com/posts/3')
.pipe(shareReplay(1));
constructor(private http: HttpClient) { }
}
component.ts
1
2
3
4
5
6
7
8
9
10
11
...
constructor(
private shareReplayDataService: ShareReplayDataService
) { }
shareReplayHttpCall() {
this.shareReplayDataService.getData$.subscribe(console.log);
}
...
参考资料
🌀 Summary
# 扫码加入「web 前端骚操作」社群 #
🌈 社群介绍