【问题标题】:How to pass multiple parameters with using RxSwift?如何使用 RxSwift 传递多个参数?
【发布时间】:2020-02-18 02:56:09
【问题描述】:

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

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

但我不知道如何传递多个参数..
如果我需要将foodNamesparams1foodNamesparams2 传递给ApiCallViewModel.foodList
我怎样才能用 RxSwift 做到这一点?

foodNamesparams1foodNamesparams2都是BehaviorRelay

【问题讨论】:

标签: ios swift rx-swift


【解决方案1】:

您很可能希望首先组合参数,最有可能通过combineLatestzip

这看起来像这样

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

CombineLatest 不会发出任何东西,除非两个组合的 observable 都至少发出一次 - 然后它将提交任何一个组合的 observable 的更新。

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

【讨论】:

  • 哦!我得到了它!谢谢! :-)
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 2020-08-14
相关资源
最近更新 更多