小编13t*_*g08的帖子

如何使用之前的可观察链的结果?

在一些 flatMap 链之后,我想最终使用之前的所有结果,假设我有以下代码:

func getObservable1() -> Observable<API1Response> {

    ...
}

func getObservable2(param: API1Response) -> Observable<API2Response> {

    ...
}

func getObservable3(param: API2Response) -> Observable<API3Response> {

    ...
}

getObservable1()
    .flatMap { api1Response in
        return getObservable2(api1Response) 
    }
    .flatMap { api2Response in
        return getObservable3(api2Response) 
    }
    .subscribe(onNext: { api3Response  in
        // I want to use both of api1Response and api2Response here
    })
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

我应该将 api 响应保存到范围外变量然后使用后者吗?

就像是:

var api1Response: API1Response?
func getObservable1() -> Observable<API1Response> {
    ...

    self.api1Response = api1Response
    ...
}
...
getObservable1()
    ...
    .subscribe(onNext: …
Run Code Online (Sandbox Code Playgroud)

swift rx-swift reactive

3
推荐指数
1
解决办法
1898
查看次数

标签 统计

reactive ×1

rx-swift ×1

swift ×1