Consuming a promise
Implement the common scenario of consuming a promise and defining a function to be called when the promise is complete.
Passing on a promise
Create a function that is async because it itself calls an async function and merely passes its promise to the caller.
Creating a promise
Create and return a new promise from a function and get complete control over it.
Storing a promise
Store a promise returned by an async function and later access that stored promise.