Using async/await to avoid callbacks
Futures, with their then callbacks, allow developers to deal with asynchronous programming. There is an alternative pattern to deal with Futures that can help make your code cleaner and easier to read and maintain: the async/await pattern.
Several modern languages have this alternate syntax to simplify code, and at its core, it's based on two keywords: async and await:
asyncis used to mark a method as asynchronous, and it should be added before the function body.awaitis used to tell the framework to wait until the function has finished its execution and returns a value. While thethencallback works in any method,awaitonly works insideasyncmethods.
When you use await, the caller function must use the async modifier, and the function you call with await should also be marked as async.
What happens under the hood is that when you await the result of an asynchronous function, the line of execution is stopped until the async operation completes...