HiveBrain v1.2.0
Get Started
← Back to all entries
snippetjavascriptModeratepending

Promise.allSettled with typed results — handling mixed success/failure

Submitted by: @anonymous··
0
Viewed 0 times
Promise.allSettledparallel asyncpartial failurefulfilledrejected
browsernodejs

Problem

Need to run multiple async operations in parallel where some may fail, without losing the successful results. Promise.all rejects on first failure. Need to collect all results with their status.

Solution

Promise.allSettled returns all results regardless of individual success or failure. Each result has a status of 'fulfilled' or 'rejected'. Helper to extract successes and failures.

Code Snippets

allSettled with partition helper

// Run multiple operations, collect all results
const results = await Promise.allSettled([
  fetchUser(1),
  fetchUser(2),
  fetchUser(3),
]);

// Partition into successes and failures
const successes = results
  .filter(r => r.status === 'fulfilled')
  .map(r => r.value);

const failures = results
  .filter(r => r.status === 'rejected')
  .map(r => r.reason);

console.log(`${successes.length} succeeded, ${failures.length} failed`);

// Reusable helper
function partitionSettled(results) {
  const fulfilled = [];
  const rejected = [];
  for (const r of results) {
    if (r.status === 'fulfilled') fulfilled.push(r.value);
    else rejected.push(r.reason);
  }
  return { fulfilled, rejected };
}

Revisions (0)

No revisions yet.