Как передать несколько параметров с помощью RxSwift? - PullRequest
0 голосов
/ 18 февраля 2020

Я сделал с кодом ниже для передачи одного параметра.

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

Но я не знаю, как передать несколько параметров ..
Если мне нужно передать foodNamesparams1, foodNamesparams2 на ApiCallViewModel.foodList
Как я могу сделать это с RxSwift?

foodNamesparams1 и foodNamesparams2 оба BehaviorRelay

1 Ответ

0 голосов
/ 18 февраля 2020

Скорее всего, вы хотите сначала объединить параметры, скорее всего, через combineLatest или zip.

Это будет выглядеть примерно так

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

CombineLatest ничего не будет излучать если обе комбинированные наблюдаемые не выпустили хотя бы один раз - и тогда он будет фиксироваться при любом обновлении любой комбинированной наблюдаемой.

Ознакомьтесь с разделом объединения здесь http://reactivex.io/documentation/operators.html#combining, чтобы найти наиболее подходящую комбинацию метод

...