Anuglar 8: HTTPRequest Interceptor - PullRequest
       15

Anuglar 8: HTTPRequest Interceptor

0 голосов
/ 14 июня 2019

Я не обновился до Anuglar 8, и теперь у меня проблема с моим уже работающим перехватчиком HTTP. С Angular 7 вообще никаких проблем.

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    if (request.url) {
      if (!request.url.startsWith('/')) {
        request = request.clone({
          url:  baseUrl + request.url
        });
      }
    }

    return next.handle(request).pipe(
      tap(
        ([]: HttpEvent<any>) => {  // <------ failure
          // nothing to do ...
        },
        (error: any) => {
    ....

Я получаю странную ошибку:

core.js:7187 ERROR TypeError: undefined is not a function
    at TapSubscriber.next.handle.pipe.logConsole [as _tapNext] (HTTP.Request.Interceptor.ts:55)
    at TapSubscriber._next (tap.js:40)
    at TapSubscriber.next (Subscriber.js:49)
    at Observable._subscribe (http.js:2066)
    at Observable._trySubscribe (Observable.js:42)
    at Observable.subscribe (Observable.js:28)

Я думал, что это функция tap, которая имеет проблемы ... Я попробовал несколько подходов для исправления, но не удалось. Так как это сработало, прежде чем я ищу исправление.

1 Ответ

0 голосов
/ 14 июня 2019

Отладка с предложенным подходом Флориана Я обнаружил, что событие возвращает {type: 0} - который я Гуглил - с решениями.

Проблема в том, что преобразование неверно, оно должно выглядеть так:

return next.handle(request).pipe(
      tap(
        (response: HttpEvent<any>) => {  
      ....

Спасибо за усилия

...