복붙노트

[ANGULAR] Ancular HTTP 인터셉터는 관찰 가능한 것으로 사슬 짓는 방법

ANGULAR

Ancular HTTP 인터셉터는 관찰 가능한 것으로 사슬 짓는 방법

해결법


  1. 1.@ComeCial Suicide 덕분에 Flatmap을 사용하는 솔루션을 찾았습니다. 다음은 일하는 코드입니다.

    @ComeCial Suicide 덕분에 Flatmap을 사용하는 솔루션을 찾았습니다. 다음은 일하는 코드입니다.

      intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        let requestHandler = this.authAzureService.getAccessToken()
        .flatMap(token => {
          request = this.getRequestWithHeaders(request, token);
          return next.handle(request);
        });
        return requestHandler;
      }
    

  2. 2.Observable에서 무언가를 반환 해야하는 경우 구독 대신지도를 사용할 수 있습니다.

    Observable에서 무언가를 반환 해야하는 경우 구독 대신지도를 사용할 수 있습니다.

    return this.authAzureService.getAccessToken()
      .map(token => request = this.getRequestWithHeaders(request, token));
    }
    

  3. 3.

    request = request.clone({
      setHeaders: {
        Authorization: `Bearer ${token}`
      }
    });
    return next.handle(request);
    
  4. from https://stackoverflow.com/questions/49437252/angular-http-interceptor-how-to-chain-an-observable by cc-by-sa and MIT license