【发布时间】:2018-10-27 04:36:09
【问题描述】:
enum Input { case text(String); case page(Int) }
我正在使用 API 方法的关键字搜索来管理分页。 现在我可以在 Rx 中同时传递关键字或页码,但不能同时传递两者。
我在一些现有的可用要点的帮助下编写了以下代码
let start = Observable.merge(reload, loadNext)
let stringObservable = keyword.asObservable().map { Input.text($0) }
let intObservable = start.asObservable().map { Input.page($0) }
let request_call = Observable.of(stringObservable, intObservable).merge()
let page = request_call
.flatMap { input in
Observable.combineLatest(Observable.just($0), api.loadData(page: $0, keyword: "breaking")) { (pageNumber: $0, items: $1) }
.materialize()
.filter { $0.isCompleted == false }
}
.share()
开始保留页码,&关键字保留搜索关键字。
我需要合并两者,我确实使用了 ENUM & Merge,
现在我必须调用 API,但显示为输入,
那么如何在一个 flatMap 中获取两个值
【问题讨论】:
标签: swift merge rx-swift flatmap