闭包(Block)转换为可观察序列

2018-09-14  本文已影响8人  FallPine
extension Reactive where Base: MJRefreshComponent {
    /// 正在刷新
    var qs_refreshing: ControlEvent<Void> {
        let source: Observable<Void> = Observable.create {
            [weak control = self.base] observer -> Disposable  in
            MainScheduler.ensureExecutingOnScheduler()
            
            guard let control = control else {
                observer.on(.completed)
                return Disposables.create()
            }
            
            control.refreshingBlock = {
                observer.on(.next(()))
            }
            return Disposables.create()
            }
            .takeUntil(deallocated)
        
        return ControlEvent(events: source)
    }
}
上一篇 下一篇

猜你喜欢

热点阅读