首页 > 解决方案 > 链接 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>

标签: angulartypescriptionic-framework

解决方案


我不熟悉 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));
  }

推荐阅读