Promise Patterns

Creating Promises

new Promise((resolve, reject) => { resolve(val); })Basic promise
Promise.resolve(value)Already resolved
Promise.reject(new Error('msg'))Already rejected

Chaining

p.then(v => ...).catch(e => ...).finally(() => ...)Chain handlers
p.then(v => Promise.resolve(v*2))Return promise in then

Combinators

await Promise.all([p1, p2, p3])All resolve (fail-fast)
await Promise.allSettled([p1, p2])Wait for all (no fail-fast)
await Promise.race([p1, p2])First to settle wins
await Promise.any([p1, p2])First to resolve wins

Async/Await

async function fn() { return await fetch(url); }Async function
const result = await promiseAwait promise
try { await fn() } catch(e) {}Error handling
const [a, b] = await Promise.all([f1(), f2()])Parallel await