如何取消正在进行的 http 调用解决或拒绝 angular 组件的 onDestroy
How to cancel an ongoing http call resolve or reject onDestroy of angular component
我有一个函数可以在单击“提交”按钮时执行 HTTP post。根据响应,我将显示一个模式,说明请求是否成功。
现在,当用户单击“提交”按钮并立即单击将加载不同组件的导航图标时,问题就出现了。现在加载了另一个页面,但仍然处理 HTTP 请求并调用 resolve/reject 并显示模态背景淡入淡出,使整个屏幕变灰并且不允许用户执行任何其他操作。唯一的出路是刷新屏幕。
有没有办法停止执行组件的resolve/reject onDestroy?
我用这个
export class Component implements OnInit, OnDestroy {
alive = true;
constructor(
private route: ActivatedRoute,
private router: Router
) { }
ngOnInit() {
this.route.queryParamMap //example observable
.pipe(
takeWhile(() => this.alive)
)
.subscribe(params => {
});
}
ngOnDestroy(): void {
this.alive = false;
}
}
还有你在你的重定向按钮中(如果你实现了背景,我想重定向是在你的模态中)你应该将背景设置为 false。
我有一个函数可以在单击“提交”按钮时执行 HTTP post。根据响应,我将显示一个模式,说明请求是否成功。
现在,当用户单击“提交”按钮并立即单击将加载不同组件的导航图标时,问题就出现了。现在加载了另一个页面,但仍然处理 HTTP 请求并调用 resolve/reject 并显示模态背景淡入淡出,使整个屏幕变灰并且不允许用户执行任何其他操作。唯一的出路是刷新屏幕。
有没有办法停止执行组件的resolve/reject onDestroy?
我用这个
export class Component implements OnInit, OnDestroy {
alive = true;
constructor(
private route: ActivatedRoute,
private router: Router
) { }
ngOnInit() {
this.route.queryParamMap //example observable
.pipe(
takeWhile(() => this.alive)
)
.subscribe(params => {
});
}
ngOnDestroy(): void {
this.alive = false;
}
}
还有你在你的重定向按钮中(如果你实现了背景,我想重定向是在你的模态中)你应该将背景设置为 false。