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 promise | Await promise |
try { await fn() } catch(e) {} | Error handling |
const [a, b] = await Promise.all([f1(), f2()]) | Parallel await |