method TaskClass.withResolvers
Private
TaskClass.withResolvers<T>(): { promise: TaskClass<T>; resolve: (value: T | PromiseLike<T>) => void; reject: (reason?: unknown) => void; }

Promise.withResolvers, returning a Task settled from outside. Lazy like every method but ignore: the Task only observes the external settlement once something awaits it.

const socket = { once(_event: string, handler: (frame: string) => void) { handler('hi'); } };

const { promise, resolve } = Task.withResolvers<string>();
socket.once('frame', resolve);
await promise; // fine even if the frame landed before this line

Type Parameters

Return Type

{ promise: TaskClass<T>; resolve: (value: T | PromiseLike<T>) => void; reject: (reason?: unknown) => void; }

Usage

import { TaskClass } from "lib/task/task.ts";