【发布时间】:2016-02-11 16:16:34
【问题描述】:
假设我们有一个 AnObject 实例数组,需要执行以下操作序列:
- 通过单独的调用将对象发送到后端
- 第 1 步完成后将此数组批量存储到数据库中
- 在第 2 步完成后对每个项目进行额外处理
并且我们希望仅在执行所有这些步骤(或出现错误)之后接收信号。通过 RxSwift 实现这一目标的正确方法是什么,实际上是否可能?
请在下面找到我的原型函数。不幸的是,我没有想出一个有效的链接代码示例,所以没有什么可演示的。
func makeAPIRequest(object: AnObject) -> Observable<Void> {
...
}
func storeData(data: [AnObject]) -> Observable<Void> {
...
}
func additionalProcessing(object: AnObject) -> Observable<Void> {
...
}
func submitData()
{
let data: [AnObject] = ...;
let apiOperations = data.map{ makeAPIRequest($0) };
let storageOperation = storeData(data);
let processingOperations = data.map{ additionalProcessing($0) };
... // some code to chain steps 1-3
.subscribe { (event) -> Void in
// should be called when operations from step 3 finished
}.addDisposableTo(disposeBag);
}
【问题讨论】:
标签: swift chaining method-chaining rx-swift