【发布时间】:2018-01-23 21:17:52
【问题描述】:
我是 RxSwift 的新手,所以我有以下问题,假设我有 3 个 Observable 示例函数,它们返回不同的 observable 类型:
func observableFunc1(item1: DummyObject) -> Observable<AVURLAsset> {
return Observable.create { observer in
let something_with_AVURLAsset = AVURLAsset(url: URL(fileURLWithPath: "file"))
observer.onNext(something_with_AVURLAsset)
observer.onCompleted()
return Disposables.create()
}
}
func observableFunc2(item: AVURLAsset) -> Observable<Data> {
return Observable.create { observer in
let something_with_data = Data()
observer.onNext(something_with_data)
observer.onCompleted()
return Disposables.create()
}
}
func observableFunc3(_ params: [String:Any]) -> Observable<Any> {
let disposeBag = DisposeBag()
return Observable.create { observer in
RxAlamofire.request(api.sendData(params)).debug().subscribe(
onNext: { reponse in
observer.onCompleted()
},
onError: { error in
observer.onError(customError.theError("error"))
}
)
.addDisposableTo(disposeBag)
return Disposables.create()
}
}
如何依次执行这3个函数,将func1的返回值用于func2,然后在func2完成时最终运行func3。
我希望我把问题说得够清楚了,但话说回来,我对 RxSwift 还是很陌生,我不知道这些操作是否可行。
【问题讨论】:
-
func3是否需要func2返回的数据?
-
如果你能提供一个例子,我会很感激:)
标签: ios swift reactive-programming rx-swift