In this chapter, we will cover the following recipes:
- Creating promises with an async function
- Awaiting the result of an async function
- Using async results in a Promise chain
- Awaiting multiple results in a series
- Awaiting multiple results concurrently
- Using Promise.all to collect an array of async results
- Handling errors when awaiting an async function
- Handling errors thrown inside of Promise.all
- Using finally to ensure an operation is performed