In this chapter, we will cover the following recipes:
- Creating and waiting for Promises
- Resolving Promise results
- Rejecting Promise errors
- Chaining Promises
- Starting a Promise chain with Promise.resolve
- Using Promise.all to resolve multiple Promises
- Handling errors with Promise.catch
- Simulating finally with the Promise API