API reference@evolu/commonTask › 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

createDeferred

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.