Как отписаться от запроса httpclient в angular 8 - PullRequest
0 голосов
/ 08 апреля 2020

Я следую за http-запросом

 getUsers(): Promise<any> {
        return new Promise((resolve, reject) => {
            let req = this._helper.getBaseUrl() + 'api/users/allUsers/' + this._helper.getUsertId();
            let sub = this._httpClient.get(req)
                .subscribe((response: any) => {
                    this.users = response.result;

                    this.users = this.users.map(user => {
                        return new Users(user);
                    });
                    this.onContactsChanged.next(this.users);
                    resolve(this.users);
                },(reject: any) => {
                        if (reject.status === 401 || reject.status === 403) {
                            location.href = '/login';
                            console.log("Unauthorized Request - In case of Auth Token Expired");
                        }
                    }
                );
        }
        );
    }

В ответе об отказе из-за несанкционированного доступа я хочу здесь отменить запросы перед тем, как перейти на страницу входа. Потому что я получаю сообщение об ошибке в консоли этого запроса на странице входа в систему и перенаправляется снова и снова, и повторяется на каждой странице. В файле .ts также определен метод onDestroy.

ngOnDestroy(): void {
        // Unsubscribe from all subscriptions
        this._unsubscribeAll.next();
        this._unsubscribeAll.complete();
    }

Как остановить этот запрос при отклонении ответа.

...