Promise
Functions for working with Promise<T> values.
Functions
Section titled “Functions”| Function | Signature | Description |
|---|---|---|
Promise.all | Array<Promise<T>> -> Promise<Array<T>> | Wait for all, fail on first rejection |
Promise.race | Array<Promise<T>> -> Promise<T> | First to settle (resolve or reject) |
Promise.any | Array<Promise<T>> -> Promise<T> | First to resolve, fail if all reject |
Promise.allSettled | Array<Promise<T>> -> Promise<Array<Result<T, Error>>> | Wait for all, return Results |
Promise.resolve | T -> Promise<T> | Wrap a value in a resolved Promise |
Promise.reject | E -> Promise<T> | Create a rejected Promise |
Promise.delay | number -> Promise<()> | Wait for milliseconds |
Examples
Section titled “Examples”// Wait for all fetchesconst users = await Promise.all([fetchUser(1), fetchUser(2), fetchUser(3)])
// Race — first response winsconst fastest = await Promise.race([fetchFromCDN(url), fetchFromOrigin(url)])
// allSettled returns Array<Result<T, Error>> — natural fit for Floeconst results = await Promise.allSettled([fetchA(), fetchB(), fetchC()])const successes = results |> Array.filter(Result.isOk)
// Delayawait Promise.delay(1000) // wait 1 secondPromise.allSettled returns Array<Result<T, Error>> instead of JavaScript’s {status, value, reason} shape, so you can use all Result helpers on the output.