angular - 链接 Observables 创建嵌套的 observable
问题描述
我正在重构我编写的一些代码,并试图将我的 observables 链接在一起。我有发出请求并返回的代码,Observable<Response>
但现在我的访问令牌是使用离子存储存储的,当我尝试发出请求时遇到了一些问题
request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
var observable = Observable.fromPromise(
this.getRequestOptionArgs(options)
)
let request = observable.map(options => super.request(url, options));
return request;
}
当我尝试创建我的选项时,我需要获取一个现在位于离子存储中的访问令牌,我试图将选项映射到请求,但是当我尝试这样做时我得到了错误的返回值。
我的要求是返回一个Observable<Observable<Response>>
而不是一个Observable<Response>
我怎样才能返回一个Observable<Response>
?
解决方案
我不熟悉 ionic,但您似乎正试图将 Observable 的 Observable 扁平化为 Observable。
如果是这种情况,您可以使用mergeMap来合并 Observables
它看起来像这样:
request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
var observable = Observable.fromPromise(
this.getRequestOptionArgs(options)
)
return observable.mergeMap(options => super.request(url, options));
}
推荐阅读
- javascript - ReactJS:Javascript fetch 适用于桌面浏览器,但在 IOS safari 上返回 403 错误(未提供身份验证凭据)
- java - 添加一个动态按钮并在它被点击时指定一个方法
- c# - 安装 Neo4j Nuget 后项目无法构建
- python - 无法理解何时在 leetcode 问题中使用虚拟节点
- arrays - cv2 视频到图像数组
- service - 缺少 VMware 身份验证服务
- java - org.hibernate.PersistentObjectException:分离的实体被传递以保持多对多关系
- html - Outlook 弄乱了 HTML 链接 - 不维护 % 字符
- python - 我想知道如何只使用 Unix 时间戳的日期部分。我将无法弄清楚的部分留空
- python - Kivy ScrollView 不会滚动到较低的内容