0

我没有升级到 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功能有问题......我尝试了几种方法来修复但没有成功。因为它在我寻找修复之前有效。

4

1 回答 1

0

使用 Florian 建议的方法进行调试,我发现事件返回{type: 0}- 我在 Google 上搜索过 - 并带有解决方案。

问题是转换不正确,它应该如下所示:

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

感谢您的努力

于 2019-06-14T10:19:32.627 回答