繁体   English   中英

如何取消正在进行的http调用解析或拒绝角度组件的onDestroy

[英]How to cancel an ongoing http call resolve or reject onDestroy of angular component

我有一个功能,可以通过单击提交按钮执行 HTTP 发布。 根据响应,我将显示一个模式,说明请求成功与否。

现在,当用户单击提交按钮并立即单击将加载不同组件的导航图标时,问题就会出现。 现在另一个页面已加载,但仍然处理 HTTP 请求并调用解析/拒绝,并显示模式背景淡入淡出,这会使整个屏幕变灰并且不允许用户执行任何其他操作。 唯一的出路是刷新屏幕。

有没有办法可以停止执行组件的解析/拒绝 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM