Перехват Angular 7 - Как исправить дубликаты вызовов HttpClient при выполнении запроса - PullRequest
0 голосов
/ 20 апреля 2019

Я использую перехватчик с HttpInterceptor в angular 7, и у меня проблема, когда все мои http-запросы дублируются.

Это для Angular версии 7.2.14 с машинописным текстом.

declare var require: any
import { BehaviorSubject, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { environment } from 'src/environments/environment';
import { Injectable } from '@angular/core';
import { UserRoles } from '../models/Companies';
import { AuthenticatedUser } from '../models/AuthenticatedUser';
import 'rxjs/add/operator/share';

var jwtDecode = require('jwt-decode');

interface LoginResult {
    bearerToken: string;
}

interface ResetResult {
    response: boolean;
}

const httpOptions = {
    headers: new HttpHeaders({ 'Content-Type': 'application/json' })
  };

@Injectable({
    providedIn: 'root',
})

export class AuthenticationService {
    private currentUserSubject: BehaviorSubject<LoginResult>;
    password: string;

  login(username: string, password: string): Observable<LoginResult> {
        return this.http.post<LoginResult> 
   (`${environment.apiUrl}/api/users/authenticate`, { username, password }, 
    httpOptions)
            .pipe(map(token => {
                // login successful if there's a jwt token in the response
                if (token) {
                    // store user details and jwt token in local storage to 
                     keep user logged in between page refreshes
                    localStorage.setItem('currentUser', 
                    JSON.stringify(token));

                    this.currentUserSubject.next(token);
                }
                return token;
            }));
    }
}

Изображение моих повторных запросов вызовов

Изображение сетевых запросов

Как вы можете видеть, предполагается сделать один запрос, но этов настоящее время каждый раз запускает повторяющиеся запросы.

...