在使用forkJoin管道化shareReplay(1)之后,应该在组件的ngOnDestroy生命周期钩子中取消订阅。以下是示例代码:
import { Component, OnDestroy } from '@angular/core';
import { Observable, forkJoin } from 'rxjs';
import { shareReplay } from 'rxjs/operators';
@Component({
selector: 'example-component',
template: ``
})
export class ExampleComponent implements OnDestroy {
private data$: Observable;
constructor() {
const request1 = this.http.get('api/data1');
const request2 = this.http.get('api/data2');
this.data$ = forkJoin(request1, request2).pipe(
shareReplay(1)
);
}
ngOnDestroy() {
this.data$.unsubscribe();
}
}