Concept
Promise.all runs several promises at once and resolves with all their values, or rejects as soon as one fails. Promise.allSettled waits for every outcome. Choosing between them is choosing how failure should behave.
The tutor works through these with you, in conversation and code. A session ends when you have shown them, not when a video does.
A few lines that show Promise.all and rejection doing its job.
const [user, orders] = await Promise.all([
loadUser("7"),
loadOrders("7"),
]); // typed as [User, Order[]]
const results = await Promise.allSettled(ids.map(loadUser));
const loaded = results
.filter((r): r is PromiseFulfilledResult<User> => r.status === "fulfilled")
.map((r) => r.value);Awaiting independent requests one after another in a loop. Each waits for the previous to finish, so five 200ms calls take a second instead of 200ms. Start them together and await Promise.all.
Your roadmap puts these before Promise.all and rejection, unless you already know them.
Once a session shows you understand Promise.all and rejection, it comes back for review. Each review takes a minute and tells the memory model how well you still know it.
What you are asked on review day.
What does Promise.all do when one promise rejects?
It rejects immediately with that first reason. The other promises keep running but their results are discarded — use Promise.allSettled to collect every outcome.