我有一个问题,我认为我可以通过订阅解决:
refresh$: Subscription;
data$: Subscription;
ngOnInit() {
this.refresh = interval(1000).subscribe(() => {
this.getData();
}
);
}
ngOnDestroy() {
this.refresh$.unsubscribe();
this.data$.unsubscribe();
}
getData() {
this.data$ = service.getData().subscribe(response => {
// here, based on response, I update the header component value whithin an event
}, err => {
// also, if catch error, update header component
});
}
因为我有 1 秒的间隔并且服务器已关闭(故意),所以我的间隔将在 5 秒内发出 5 个请求,但 foreach 的答案将在 1 秒内出现。
因此,当我发出第一个请求并等待它的回答(这将引发错误)时,已经会发出第二个请求,thirs,依此类推。
此时,如果我离开页面(调用ngOnDestroy
),我想从另一个组件更新标题。但是,离开页面后,我会收到上一个组件的所有响应(成功或失败)。我想在离开时取消所有这些。我以为这unsubscribing
会data$
解决这个问题,但问题仍然存在。
谢谢