A Request is an object containing closures that can be called asynchronously at some point in the future:
let request = Request<String>(successHandler: { string in
print(string)
})Depending on the result of some computation the request can be successful:
request.complete(with: "Success!")Or not:
request.complete(with: TestError.error)In any case the request finishes:
request.finished {
print("did finish")
}Requests can be canceled:
request.cancel()Closures can be added:
request.success(handler: { string in
print("Result: \(string)")
})
request.fail { error in
print("Error: \(error)")
}
request.finished {
print("request did complete")
})