如何使用RxSwift传递多个参数?

问题描述 投票:0回答:1

我使用下面的代码来传递单个参数。

lazy var priceListData: Observable<FoodPrice> = {
        return self.foodNamesparams1.asObservable()
                   .flatMapLatest(ApiCallViewModel.foodList(_:))
}

但是我不知道如何传递多个参数。如果我需要传递foodNamesparams1foodNamesparams2ApiCallViewModel.foodList我如何使用RxSwift做到这一点?

[foodNamesparams1foodNamesparams2都是BehaviorRelay

ios swift rx-swift
1个回答
0
投票

您最有可能想首先组合参数,最有可能是通过combineLatestzip

看起来像这样

Observable.combineLatest(
    foodNamesparams1.asObservable(),
    foodNamesparams2.asObservable()
  )
  .flatMapLatest(ApiCallViewModel.foodList)

[CombineLatest将不会发出任何东西,除非两个组合的可观察对象都至少发出了一次-然后它将对任何一个组合的可观察对象进行任何更新。

在这里查看合并部分http://reactivex.io/documentation/operators.html#combining寻找最适合的组合方法

© www.soinside.com 2019 - 2024. All rights reserved.