Skip to content

Instantly share code, notes, and snippets.

@mminer
Created December 5, 2016 21:30
Show Gist options
  • Save mminer/397e4f96af35cbf4034dd8c7638be715 to your computer and use it in GitHub Desktop.
Save mminer/397e4f96af35cbf4034dd8c7638be715 to your computer and use it in GitHub Desktop.
Custom RxSwift operator that maps and unwraps an optional value.
import RxSwift
extension ObservableType {
/// A map that unwraps an optional value, only continuing if the result is not nil.
func ignoreNilMap<R>(transform: @escaping (E) -> R?) -> Observable<R> {
return Observable.create { observer in
return self.subscribe { element in
switch element {
case .next(let value):
guard let result = transform(value) else {
break
}
observer.onNext(result)
case .error(let error):
observer.onError(error)
case .completed:
observer.onCompleted()
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment