首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角4 Http拦截器:next.handle(.).do不是函数

角4 Http拦截器:next.handle(.).do不是函数
EN

Stack Overflow用户
提问于 2017-08-23 18:08:11
回答 4查看 24.3K关注 0票数 28

我创建这个HTTPInterceptor是为了能够更好地处理http错误,在我执行git拉出并运行npm安装之前,它运行得很好。

这是我的密码:

代码语言:javascript
复制
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse} from '@angular/common/http';
import {Observable} from "rxjs";
import {ToasterService} from "angular2-toaster";

@Injectable()
export class GobaeInterceptor implements HttpInterceptor {
    constructor(private toasterService: ToasterService){
    }
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(req)
            .do(event => {
                if (event instanceof HttpResponse) {
                    let response = event.body;
                    if(response.Error){
                        this.toasterService.pop('error', 'Error '+response.Code, response.Message);
                    }
                }
            });
    }
}

这就是我遇到的错误:

GobaeInterceptor.webpackJsonp.../../../../../src/app/services/gobae.interceptor.ts.GobaeInterceptor.intercept (.).do不是HttpInterceptorHandler.webpackJsonp.../../../common/@angular/common/http.es5.js.HttpInterceptorHandler.handle的next.handle (gobae.interceptor.ts:12)中的一个函数(

最近有什么东西能影响我的代码吗?现在我能做些什么来“捕获”我的拦截器上的http响应?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-08-24 10:00:19

引发此错误是因为您缺少do运算符。下面的导入使用do操作符对可观察的对象进行修补。

代码语言:javascript
复制
import 'rxjs/add/operator/do';

在默认情况下,RxJ不与所有运算符函数绑定以减少库大小。您需要导入您希望单独使用的操作符。

票数 53
EN

Stack Overflow用户

发布于 2018-07-02 15:35:03

rxjs 6/角6将需要管道

代码语言:javascript
复制
return next.handle(req).pipe(
  tap(event => {
    if (event instanceof HttpResponse) {
      ...
    }
  })
);
票数 24
EN

Stack Overflow用户

发布于 2017-09-09 08:35:04

你必须使用进口。

代码语言:javascript
复制
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
import 'rxjs/Observable';
import 'rxjs/add/observable/throw';
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45846662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档