假设我们有一个 AnObject 实例数组,并且需要执行以下操作序列:
- 通过单独的调用将对象发送到后端
- 步骤 1 完成后将此数组批量存储到 DB
- 第 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);
}