RxSwift 비동기 처리 중에 ProgressHUD를 발행
import RxSwift
import SVProgressHUD
extension ObservableType {
func withHUD(withStatus status: String? = nil) -> Observable<Self.E> {
return self.do(onNext: nil, onError: { _ in
SVProgressHUD.showError(withStatus: nil)
}, onCompleted: {
SVProgressHUD.showSuccess(withStatus: nil)
}, onSubscribe: nil, onSubscribed: {
SVProgressHUD.show(withStatus: status)
}, onDispose: {
SVProgressHUD.dismiss()
})
}
}
이런 식으로 하면
Auth().authorize().withHUD().subscribe(onNext: {
//hoge
}).disposed(by: bag)
처리에 withHUD를 쓰는 것만으로 처리중에 자동으로 HUD를 내 준다고 생각한다
추가
츠코미 감사합니다.
MainScheduler로 동작시키는 것은 명시적으로 쓰는 편이 좋을까 생각합니다.
추가 2
Observable -> Observable로 구현 bind(to binder: (Self) -> T) -> T에 전달
과연! 이것이라면 Observable의 흐름을 바탕으로 부차적으로 동작하고 있는 것이 명시적으로 표현되고 있습니다… (공부가 되었습니다)
추가 3
bind한 수만큼 HUD가 발행된다/Driver라면 shared/Scheduler의 문제는 해결한다
SharedSequence/Driver로 한 시점에서 onError를 잡을 수 없게 되므로 이번 구현은 할 수 없는 생각이 들었습니다.
ObservableType에 대해서 extension해 SharedSequence를 돌려주는 구현으로 해 보는 것이 가까운 생각도 합니다만, 역시 scheduler와 shared의 필요성을 이용측의 책임으로 하는 것은 좋은 구현은 아니네요…
Reference
이 문제에 관하여(RxSwift 비동기 처리 중에 ProgressHUD를 발행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/464fc6f9e9e443ebe434
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Observable -> Observable로 구현 bind(to binder: (Self) -> T) -> T에 전달
과연! 이것이라면 Observable의 흐름을 바탕으로 부차적으로 동작하고 있는 것이 명시적으로 표현되고 있습니다… (공부가 되었습니다)
추가 3
bind한 수만큼 HUD가 발행된다/Driver라면 shared/Scheduler의 문제는 해결한다
SharedSequence/Driver로 한 시점에서 onError를 잡을 수 없게 되므로 이번 구현은 할 수 없는 생각이 들었습니다.
ObservableType에 대해서 extension해 SharedSequence를 돌려주는 구현으로 해 보는 것이 가까운 생각도 합니다만, 역시 scheduler와 shared의 필요성을 이용측의 책임으로 하는 것은 좋은 구현은 아니네요…
Reference
이 문제에 관하여(RxSwift 비동기 처리 중에 ProgressHUD를 발행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/noppefoxwolf/items/464fc6f9e9e443ebe434
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(RxSwift 비동기 처리 중에 ProgressHUD를 발행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/noppefoxwolf/items/464fc6f9e9e443ebe434텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)