结合 flatMap/Scan 携带中间结果
Posted
技术标签:
【中文标题】结合 flatMap/Scan 携带中间结果【英文标题】:Combine flatMap/Scan to carry intermediate result 【发布时间】:2018-05-02 08:06:55 【问题描述】:我经常发现自己使用 flatmap 链接多个 http 请求,但有时我需要将结果传送到比下一个 observable 更远的地方。我该怎么做呢?
效果:
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】:所以我也在 Slack 上为 RxSwift 发布了这个问题。
这是我从 Zsolt Váradi (vzsg) 得到的回复
getFoo().flatMap foo in
getBars(ofFoo: foo.id).map bars in (foo, bars)
希望这可以帮助其他人
【讨论】:
以上是关于结合 flatMap/Scan 携带中间结果的主要内容,如果未能解决你的问题,请参考以下文章