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")
})