iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
自我挑戰組

Angular 元件煉成練習計畫系列 第 8

ReplaySubject 當快取

  • 分享至 

  • xImage
  •  

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { ReplaySubject, Observable, tap } from 'rxjs';

@Injectable({
providedIn: 'root'
})
export class CacheService {

private cache$: ReplaySubject = new ReplaySubject(1);

constructor(private http: HttpClient) { }

getData(dataUrl: string): Observable {
// return this.http.get(dataUrl)
if (!this.cache$.observers.length) {
this.http.get(dataUrl)
.pipe(
tap(data => this.cache$.next(data)),
tap(()=>{
console.log(this.cache$)
})
)
.subscribe();
}
return this.cache$.asObservable();
}
}


上一篇
處理一個動態元件模板
下一篇
倒數計時器
系列文
Angular 元件煉成練習計畫12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言