在一些 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)