Skip to content

Instantly share code, notes, and snippets.

@ivanbruel
Created May 3, 2016 13:20
Show Gist options
  • Save ivanbruel/24e59d0748f9007fa68be41ccbee4a34 to your computer and use it in GitHub Desktop.
Save ivanbruel/24e59d0748f9007fa68be41ccbee4a34 to your computer and use it in GitHub Desktop.
RxSwift extension to handle Result signals with doOn methods
import Foundation
import RxSwift
import Result
extension ObservableType where E: ResultType {
func doOnSuccess(onSuccess: (E.Value throws -> Void))
-> Observable<E> {
return self.doOnNext { (value) in
guard let successValue = value.value else {
return
}
try onSuccess(successValue)
}
}
func doOnFailure(onFailure: (E.Error throws -> Void))
-> Observable<E> {
return self.doOnNext { (value) in
guard let failureValue = value.error else {
return
}
try onFailure(failureValue)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment