结合flatMap / Scan进行中间结果

时间:2018-05-02 08:06:55

标签: swift functional-programming rx-swift reactive moya

我经常发现我使用flatmap自我链接多个http请求,但有时我需要比下一个observable更多地携带结果。我该怎么做呢?

Fx的:

getAPIKey().flatMap( {key in 
    return getData1(key)
})
.flatMap({ (key, data) in 
   return getData2(key, data)
})
.map({ data in
   data.transform()
})
.subscribe(onNext: { transformed in
//Do something with data
})

这不是实际的例子,所以不要陷入语义。

1 个答案:

答案 0 :(得分:1)

所以我也在Slack for RxSwift上发布了这个问题。

这是我从ZsoltVáradi(vzsg)得到的回应

getFoo().flatMap { foo in
    getBars(ofFoo: foo.id).map { bars in (foo, bars) }
}

希望这可以帮助别人