Swift 5: How to do Async/Await with Result and GCD

Why wait for Apple to add Async/Await to Swift when you can have it now?

Swift 5.0 brought several new language enhancements along with ABI stability, and one of those was adding Result to the standard library. Result gives us a simpler, clearer way of handling errors in complex code such as asynchronous APIs.