If you use React, understand custom hooks. They make error handling, auth, a lot cleaner, and you can easily switch from ContextProviders to reducers if need be.
Another thing, read about Promise.all() for real concurrency, just chaining async calls is a bottleneck, if the calls are independent.