Deferred
Deferred:
object
Defined in: Core/Deferred.ts:24
Type Declaration
Section titled “Type Declaration”all: <
T>(deferreds) =>Deferred<{ [K in string | number | symbol]: T[K] extends Deferred<A> ? A : never }>
Combines an array or tuple of Deferred values into a single Deferred of a tuple.
Resolves when all input Deferreds resolve.
Type Parameters
Section titled “Type Parameters”T extends readonly Deferred<unknown>[]
Parameters
Section titled “Parameters”deferreds
Section titled “deferreds”T
Returns
Section titled “Returns”Deferred<{ [K in string | number | symbol]: T[K] extends Deferred<A> ? A : never }>
Example
Section titled “Example”chain: <
A,B>(transform) => (deferred) =>Deferred<B>
Chains a Deferred-returning step after the current one resolves.
The next step starts only after the previous value arrives, and only that value is
passed forward. Use Deferred.all to run independent steps concurrently.
Type Parameters
Section titled “Type Parameters”A
B
Parameters
Section titled “Parameters”transform
Section titled “transform”(value) => Deferred<B>
Returns
Section titled “Returns”(deferred) => Deferred<B>
- Deferred.map when the transform returns a plain value.
- Deferred.all to combine independent
Deferredvalues.
Example
Section titled “Example”from:
object
from.Promise
Section titled “from.Promise”Promise: <
A>(p) =>Deferred<A> =fromPromise
Wraps a Promise or Deferred into a Deferred, structurally excluding rejection handlers,
.catch(), .finally(), and chainable .then().
Precondition: p must never reject. If p rejects, the returned Deferred will
never resolve — await-ing it will hang indefinitely. Use Task.Result.tryCatch to
handle operations that may fail before converting to a Deferred.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”Thenable<A>
Returns
Section titled “Returns”Deferred<A>
Example
Section titled “Example”map: <
A,B>(transform) => (deferred) =>Deferred<B>
Transforms the resolved value of a Deferred.
Deferred is the type every asynchronous run settles into: Task.run, Op.Manager.run,
Resource.use, and Graph.run all return one. Use map to reshape that settled value
without converting back to a Promise.
Type Parameters
Section titled “Type Parameters”A
B
Parameters
Section titled “Parameters”transform
Section titled “transform”(value) => B
Returns
Section titled “Returns”(deferred) => Deferred<B>
Deferred.chain when the transform itself returns another Deferred.
Example
Section titled “Example”race: <
A>(deferreds) =>Deferred<A>
Races multiple Deferred values and resolves with the first one to settle.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”deferreds
Section titled “deferreds”readonly Deferred<A>[]
Returns
Section titled “Returns”Deferred<A>
Example
Section titled “Example”tap: <
A>(sideEffect) => (deferred) =>Deferred<A>
Runs a side effect with the resolved value and passes that value through unchanged.
The callback must not throw. Use it to log, record metrics, or update a store after an operation settles without breaking the chain.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”sideEffect
Section titled “sideEffect”(value) => void
Returns
Section titled “Returns”(deferred) => Deferred<A>
Deferred.map to transform the value instead of observing it.
Example
Section titled “Example”to:
object
to.Promise
Section titled “to.Promise”Promise: <
A>(d) =>Promise<A> =toPromise
Converts a Deferred back into a Promise.
Type Parameters
Section titled “Type Parameters”A
Parameters
Section titled “Parameters”Deferred<A>
Returns
Section titled “Returns”Promise<A>