Jon*_*ono 2 rxjs typescript angular
我在我的服务中建立了一个可观察对象,以便每 2 秒轮询一次 API 的更新;可观察的内容仍然存在,但当我移动页面或调用不同的结果时,我需要销毁它。
任何人都可以帮助如何在页面退出时或作为手动请求(例如,通过对 API 的另一次调用)销毁可观察对象吗?
return Observable.interval(2000).switchMap(() => {
return super.doRequest('/audit/api/' + this.API_version + '/Query/GetFlowHistory?sagaId=' + sagaId, 'get', {}).map((responseData) => {
return responseData
}); })
Run Code Online (Sandbox Code Playgroud)
您可以takeUntil
从 RxJS 使用。takeUntil 将停止订阅。请参阅下面的示例。
class myComponent {
private destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);
ngOnInit() {
return Observable.interval(2000).switchMap(() => {
return super.doRequest('/audit/api/' + this.API_version + '/Query/GetFlowHistory?sagaId=' + sagaId, 'get', {}).map((responseData) => {
return responseData
});
}).takeUntil(this.destroyed$)
}
destroy() {
this.destroyed$.next(true);
this.destroyed$.complete();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5617 次 |
最近记录: |