Yes, for fetch. AbortController actually cancels the request (not just races it). Promise.race does not cancel the other promises; they continue running. Use AbortController for real cancellation.
Should you use AbortController instead of Promise.race for timeouts in JavaScript?
More FAQs in Promise Combinators Best Practices in JavaScript
Choose the right combinator (all, allSettled, race, any), always handle errors, use allSettled for best-effort, clear timers in race, use AbortController for cancellation, limit concurrency for large sets, handle AggregateError, and check for empty arrays.
Use Promise.all when all operations must succeed (any failure is a total failure). Use Promise.allSettled when you want all results even if some fail (partial success).
Batch items: for (let i = 0; i < items.length; i += size) { await Promise.all(items.slice(i, i + size).map(fn)); }. Process size items at a time to avoid overwhelming the server.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.