Skip to content

Instantly share code, notes, and snippets.

@tjeerdintveen
Created August 19, 2018 18:17
Show Gist options
  • Save tjeerdintveen/0ffd1d477937f17114dce3a51d374d0f to your computer and use it in GitHub Desktop.
Save tjeerdintveen/0ffd1d477937f17114dce3a51d374d0f to your computer and use it in GitHub Desktop.
extension URLSession {
func dataTask(with url: URL, completionHandler: @escaping (Result<Data, AnyError>) -> Void) -> URLSessionTask {
return dataTask(with: url, completionHandler: { (data, response, error) in
if let error = error {
let anyError = AnyError(error)
completionHandler(Result.failure(anyError))
} else if let data = data {
completionHandler(Result.success(data))
} else {
let anyError = AnyError(NSError(domain: "my domain", code: 500, userInfo: nil))
completionHandler(Result.failure(anyError))
}
})
}
}
@tjeerdintveen
Copy link
Author

tjeerdintveen commented Aug 19, 2018

This extension gives you the ability to use Apple's Result on URLSession. The Result type can be found at https://github.com/apple/swift-package-manager/blob/master/Sources/Basic/Result.swift

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment