RxSwift-如何调用定期返回驱动程序的方法?
我是一名RxSwift初学者,正在使用RxSwift+MVVM制作一个应用程序 我有一个方法,它调用API并在ViewModel类中转换为RxCocoa.Driver,如下所示RxSwift-如何调用定期返回驱动程序的方法?,swift,rx-swift,rx-cocoa,Swift,Rx Swift,Rx Cocoa,我是一名RxSwift初学者,正在使用RxSwift+MVVM制作一个应用程序 我有一个方法,它调用API并在ViewModel类中转换为RxCocoa.Driver,如下所示 func fetch()->驱动程序{ 获取(查询:HomeViewQuery()) .map{中的数据 HomeViewEntity(用户名:data.name, 电子邮件地址:data.email } .asDriver(onErrorRecover:{[weake self]中出现错误 如果让printableEr
func fetch()->驱动程序{
获取(查询:HomeViewQuery())
.map{中的数据
HomeViewEntity(用户名:data.name,
电子邮件地址:data.email
}
.asDriver(onErrorRecover:{[weake self]中出现错误
如果让printableError=错误为?printableError{
self?.errorMessageRelay.accept(AlertPayload(标题:printableError.title,消息:printableError.message))
}
返回驱动程序。从不()
})
}
现在,我想在ViewController上定期调用这个fetchListPlace()
方法,即轮询(例如每5分钟一次)
怎么做
我认为interval
适合这种情况,但我无法获得实现映像….给你:
func example(_ fetcher: Fetcher) -> Driver<HomeViewEntity> {
Driver<Int>.interval(.seconds(5 * 60))
.flatMap { _ in fetcher.fetch() }
}
func示例(fetcher:fetcher)->驱动程序{
驱动程序间隔(.s(5*60))
.flatMap{在fetcher.fetch()中}
}
还注意到
- 从恢复闭包返回
可能是个坏主意。请选择驱动程序.never()
驱动程序.empty()
- 首先,我不喜欢在恢复闭包中添加副作用。我认为最好让
返回fetch()
驱动程序,并将副作用移动到链的末端(在订阅或平面图中)
- 给你:
func example(_ fetcher: Fetcher) -> Driver<HomeViewEntity> {
Driver<Int>.interval(.seconds(5 * 60))
.flatMap { _ in fetcher.fetch() }
}
func示例(fetcher:fetcher)->驱动程序{
驱动程序间隔(.s(5*60))
.flatMap{在fetcher.fetch()中}
}
还注意到
- 从恢复闭包返回
可能是个坏主意。请选择驱动程序.never()
驱动程序.empty()
- 首先,我不喜欢在恢复闭包中添加副作用。我认为最好让
返回fetch()
驱动程序,并将副作用移动到链的末端(在订阅或平面图中)