Last active
November 21, 2021 01:53
-
-
Save ChrisLowe-Takor/d0eb1575bc9c302358b00ab9db0926c6 to your computer and use it in GitHub Desktop.
Creating an RxSwift Observable from a closure
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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