使用 RxJs 在 Angular Service 中缓存数据

天魂
Autor 天魂 一个死磕 Angular 的逼粉

使用 RxJs 在 Angular Service 中缓存数据

在接口返回的数据不会变化的场景下,前端第一次请求接口获取数据后缓存到前端,下次请求时直接返回缓存,已达到减少请求次数的目的。

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 前端骚操作」社群 #
🌈 社群介绍
comments powered by Disqus