Обзор
functionTiming And Cancellation

wait

Waits for a duration while observing an `AbortSignal`.

Signature

tsSignature
export function wait(ms: number, signal: AbortSignal): Promise<Result<void, Cancelled>>;

Imports

tsImport
import { wait } from "@/lib/flow/wait";
import { wait } from "@/lib/flow";

Parameters

ms
number

Duration in milliseconds.

signal
AbortSignal

Signal used to cancel the wait.

Returns

A promise resolving to success or cancellation.

Return type
Promise<Result<void, Cancelled>>

Details

Non-positive durations resolve immediately with success. If the signal aborts before the timer

completes, the promise resolves with a cancellation result instead of throwing.

Examples

tsExample
const waited = await wait(250, signal);
Result

Explicit success-or-failure outcome used throughout Flow.

type

Source

tsflow/wait.ts:19-42
export function wait(ms: number, signal: AbortSignal): Promise<Result<void, Cancelled>> {
if (signal.aborted) {
return Promise.resolve(resultFromSignal(signal));
}
if (ms <= 0) {
return Promise.resolve(ok(undefined));
}
return new Promise((resolve) => {
const timeout = setTimeout(() => {
signal.removeEventListener("abort", onAbort);
resolve(ok(undefined));
}, ms);
const onAbort = () => {
clearTimeout(timeout);
signal.removeEventListener("abort", onAbort);
resolve(resultFromSignal(signal));
};
signal.addEventListener("abort", onAbort, { once: true });
});
}