gpt4 book ai didi

angular - 如何销毁可观察对象

转载 作者:行者123 更新时间:2023-12-01 21:58:32 25 4
gpt4 key购买 nike

我在我的服务中建立了一个可观察对象,以便每 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
}); })

最佳答案

您可以使用 RxJS 中的 takeUntil。 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();
}
}

关于angular - 如何销毁可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54802677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com