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: 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:
- async is used to mark a method as asynchronous, and it should be added before the function body.
- await is used to tell the framework to wait until the function has finished its execution and returns a value. While the then callback works in any method, await only works inside async methods.
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 an asynchronous function, the line of execution is stopped until the async operation completes.
Here, you can see...