я новичок в RxSwift, и это то, чего я хочу достичь, надеюсь, вы, ребята, можете мне помочь.
У меня есть наблюдаемое, которое синхронизирует мою информацию с сервером, кэширует ответ и возвращает наблюдаемый (успешно или не удалось), что я хочу сделать, это как только у меня будет этот успешный код ... go и получить информацию, которая находится в кеше, но я продолжаю получать ошибку
Невозможно преобразовать значение типа '(_) -> Observable' в ожидаемый тип аргумента '((Bool) throws -> Void
Я знаю, что это из-за моего метода syn c возвращает bool , но я не знаю, как я могу вызвать информацию о извлечении кеша после того, как произошла синхронизация c.
Вот код, который я использую ...
private func fetchAndCacheMonthActivity(forDate date: Date) -> Observable<ActivityMonthInfo> {
_activity.sync()
.do(onNext: {[weak self] _ -> Observable<ActivityMonthInfo> in
var cachedObs = self?._cacheMonthInfoObs[date.yearMonthString]
guard cachedObs == nil else { return cachedObs! }
cachedObs = _myActivitiesRepo.getMonthActivity(forMonthInDate: date)
.share(replay: 1, scope: SubjectLifetimeScope.forever)
self?._cacheMonthInfoObs[date.yearMonthString] = cachedObs!
return cachedObs!
})
}
Спасибо за чтение ... Надеюсь, вы мне поможете.