当我升级到angular-6.x及其对等依赖项(zone,rxjs等)时,我正在使用angular-5.x。
我开始面临以下错误
src / app / xxx / apiConnection / auth.interceptor.ts中的错误(25,33):错误TS2339:类型'Observable>'上的属性'do'不存在。 src / app / xxx / apiConnection / auth.interceptor.ts(30,31):错误TS2339:属性'do'在类型'Observable>'上不存在。
我的代码如下:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log(req)
if(!req.headers.has('skip-interceptors')) {
let card = localStorage.getItem(LocalStoregeIdems.oAUTH_ACCESS_CARD)
, headers;
if (card) {
headers = req.headers.set('Authorization', card);
}
let clone = req.clone({
withCredentials: true,
headers
});
return next.handle(clone).do(event => {
console.log(event);
});
} else {
req.headers.delete('skip-interceptors');
return next.handle(req).do(event => {
console.log(event);
});
}
}
答案 0 :(得分:0)
在rxjs6中,do
运算符已重命名为tap
运算符。
希望有帮助
答案 1 :(得分:0)
对Pierre来说是完整的。
如果您do
要使用tap
(打算使用Pun ..),则需要先对其进行管道传输。
您的突破线将如下所示:
return next.handle(req).pipe(tap(event => {
console.log(event);
})
);