八月8:HTTPRequest拦截器

时间:2019-06-14 09:37:01

标签: angular angular-http-interceptors angular8

我还没有升级到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 :(得分:0)

使用Florian的建议方法进行调试,我发现该事件返回了{type: 0}(我用Google搜索了该事件)以及解决方案。

问题在于转换不正确,它看起来应该像这样:

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

致谢