【发布时间】:2019-06-14 18:19:32
【问题描述】:
我没有升级到 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 函数有问题...我尝试了几种方法进行修复,但没有成功。因为它在我寻找修复之前就已经奏效了。
【问题讨论】:
-
你需要导入
tap -
否则代码无法编译:-/ 执行时出错。
-
你能把你的代码分享到
https://stackblitz.com -
@LeO 你能像这样更改代码并尝试吗?
return next.handle(request).pipe( tap( event => console.log(event))
标签: angular angular-http-interceptors angular8