我还没有升级到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
函数有问题...我尝试了几种方法进行修复,但没有成功。由于它在我寻求修复之前就可以使用。
答案 0 :(得分:0)
使用Florian的建议方法进行调试,我发现该事件返回了{type: 0}
(我用Google搜索了该事件)以及解决方案。
问题在于转换不正确,它看起来应该像这样:
return next.handle(request).pipe(
tap(
(response: HttpEvent<any>) => {
....
致谢