我使用下面的代码来传递单个参数。
lazy var priceListData: Observable<FoodPrice> = {
return self.foodNamesparams1.asObservable()
.flatMapLatest(ApiCallViewModel.foodList(_:))
}
但是我不知道如何传递多个参数。如果我需要传递foodNamesparams1
,foodNamesparams2
到ApiCallViewModel.foodList
我如何使用RxSwift做到这一点?
[foodNamesparams1
和foodNamesparams2
都是BehaviorRelay
您最有可能想首先组合参数,最有可能是通过combineLatest
或zip
。
看起来像这样
Observable.combineLatest(
foodNamesparams1.asObservable(),
foodNamesparams2.asObservable()
)
.flatMapLatest(ApiCallViewModel.foodList)
[CombineLatest将不会发出任何东西,除非两个组合的可观察对象都至少发出了一次-然后它将对任何一个组合的可观察对象进行任何更新。
在这里查看合并部分http://reactivex.io/documentation/operators.html#combining寻找最适合的组合方法