gpt4 book ai didi

ios - 如何更改我的返回方法上的可观察类型

转载 作者:行者123 更新时间:2023-12-01 19:31:37 25 4
gpt4 key购买 nike

我是 RxSwift 的新手,这就是我想要实现的目标,希望你们能帮助我。

我有一个 observable 可以将我的信息与服务器同步并缓存响应并返回一个 Observable(成功或失败),我想要做的是一旦我有了这个成功代码......去获取缓存中的信息,但我不断得到的错误是

Cannot convert value of type '(_) -> Observable' to expected argument type '((Bool) throws -> Void



我知道这是因为我的同步方法返回一个 bool 值,但我不知道如何在同步发生后触发缓存拉取信息。

这是我使用的代码...
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!
})
}


感谢阅读...我希望你们能帮助我。

最佳答案

您应该使用 flatMap(_:)这里而不是 do(onNext:)
但是代码在您订阅它之前不会执行,所以请记住这一点。

关于ios - 如何更改我的返回方法上的可观察类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62458371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com