API reference › @evolu/common › Task › Deferred
Defined in: packages/common/src/Task.ts:2202
A value that can be resolved later.
Similar to Promise.withResolvers, but integrated with Task and Run for cancellation support.
Use for bridging callback-based APIs or coordinating between Tasks.
Disposing aborts all waiting Tasks with an AbortError with deferredDisposedError reason.
Example
const deferred = createDeferred<string, MyError>();
// Start waiting for the value
const fiber = run(deferred.task);
// Resolve from elsewhere (callback, another task, etc.)
deferred.resolve(ok("value"));
const result = await fiber; // ok("value")
See
Extends
Methods
[dispose]()
dispose: void;
Defined in: node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts:36
Inherited from
Disposable.[dispose]
Properties
resolve
readonly resolve: (result: Result<T,
| AbortError
| E
| DeferredDisposedError>) => boolean;
Defined in: packages/common/src/Task.ts:2207
Resolves the value. Returns true once, then false.
task
readonly task: Task<T,
| E
| DeferredDisposedError>;
Defined in: packages/common/src/Task.ts:2204
A Task that waits until Deferred.resolve is called.