Я хочу нанести на карту диктовку
и flatMap для возврата нового Observable.
Я пытаюсь Observable, поскольку я мог бы или 1 единственный объект или массив объекта.
func fetchRibsList() -> Observable<[LCLRibAccount]> {
return provider.rxDict(service: .fetchRibsList)
.map({ (dict, _) -> [String: Any] in
return dict
})
.filter({ dict -> Bool in
dict["ribs"] != nil
})
.filter({ dict -> Bool in
dict["rib"] != nil
})
.flatMap({ dict -> Observable<Any> in
//return either list of ribs or 1 single rib
if let ribs = dict["ribs"] as? [String: Any] {
return Observable.just(LCLRib.parseAccountList(with: ribs))
}
if let rib = dict["rib"] as? [String: Any] {
return Observable.just(LCLRib.parseRib(with: rib))
}
return Observable.empty()
})
}
возможно ли включить условие с 2 flatMap и вернуть массив или 1 отдельный объект
проблема в том, что мне нужно быть конкретным с типом Observable:
это ошибка, которую я получаю: Невозможно преобразовать возвращаемое выражение типа 'Observable' в тип возвращаемого значения 'Observable <[LCLRibAccount]>'