作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Angular 7 应用程序中有一个拦截器,它在重新发出请求之前请求获取 token 。如果同时收到多个请求,那么它们都会发出请求以获取 token 。为了避免这种情况,我共享了一个 observable,以便共享获取 token 的结果,并且只发出一个请求来获取 token 。
我创建共享的可观察对象如下
this.authService.sharedToken = this.authService.getToken().pipe(share());
return auth.sharedToken.flatMap((res) => {
auth.saveTokenToLocalStorage(res);
return this.getRequestWithAuthentication(request, next, auth);
}).catch(function (err) {// I handle errors here
}
return auth.sharedToken.pipe(
mergeMap((res) => {
auth.saveTokenToLocalStorage(res);
return this.getRequestWithAuthentication(request, next, auth);
}), catchError(function (err) {
console.log("failed to get token")
return EMPTY;
}));
最佳答案
随着 RxJS 5.5 的新 管道 引入了运算符语法。在 RxJS 6.0 中它变成了 强制性 使用旧语法。
所以你将不得不替换你的代码
.pipe(
mergeMap(...)
)
关于angular - 如何在 rxjs 6.4.0 Angular 中替换 flatMap 和 mergeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54714730/
我是一名优秀的程序员,十分优秀!