簡體   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