Skip to main content

Editable promises - intermediate

Promise.all

Change fake APIs, delays, and failure target to see short-circuiting.

partially simulatedcurated scenariodoes not execute real code
Short answer

The key output order is fail. One rejection rejects the whole `Promise.all` result.

Real-world bug this helps solve

A later .then receives the wrong value, an error appears in a surprising place, or a batch fails differently than expected. Use `Promise.allSettled` when you need every result, including failures.

Common wrong assumption

Expecting partial successes to continue to `.then`.

Fix direction

Return or await the promise chain so values and failures move through the flow intentionally.

Fixed code pattern
return doWork()
  .then((value) => nextStep(value))
  .catch(handleError);
Visual proof

The console lane proves the visible order: fail. The active line and queues show why source order changed.

How to verify in a real app

Write a focused unit test that asserts the resolved value or rejected path, then verify every branch returns or awaits its work.

Share
Loading editable case...

Related cases

Continue with nearby confusion while the mental model is fresh.

Recommended next

Was this clear?

This stays local for now. It helps you track where the product still needs sharper cases.

Send detail