Skip to content

Instantly share code, notes, and snippets.

@ChrisLowe-Takor
Last active November 21, 2021 01:53
Show Gist options
  • Save ChrisLowe-Takor/d0eb1575bc9c302358b00ab9db0926c6 to your computer and use it in GitHub Desktop.
Save ChrisLowe-Takor/d0eb1575bc9c302358b00ab9db0926c6 to your computer and use it in GitHub Desktop.
Creating an RxSwift Observable from a closure
// Say we have an Alamofire request we want to consume as an Observable..
func fooAsObservable(URL: String, headers: [String: AnyObject?]) -> Observable<Foo> {
return create { observer in
let request = Alamofire(.GET, URL, headers: headers
.responseJSON(completionHandler: { (_, _, result) in
switch result {
case .Failure(let data, let error):
observer.on(.Error(error)
case .Success(let value):
let foo = Foo(value)
observer.on(.Next(foo))
observer.on(.Completed)
}
})
return AnonymousDisposable {
request.cancel()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment