Skip to content

Timeout ​

Rejects work that does not finish before the configured duration.

Import ​

typescript
import { Timeout } from '@haskou/flow';
import { Duration } from '@haskou/value-objects';

Constructor ​

typescript
constructor(duration: number | Duration | TimeoutDuration)

Throws ​

  • InvalidTimeoutDurationError
  • TimeoutError
  • any error thrown by the task

Methods ​

MethodDescription
run(task, signal?)Runs the task with a timeout and passes an AbortSignal.

Example ​

typescript
await new Timeout(Duration.fromSeconds(3)).run((signal) =>
  fetchSomething({ signal }),
);

Notes ​

  • Timeout aborts the task signal before rejecting with TimeoutError.
  • The internal timer is cleared when the task finishes before the timeout.
  • Parent abort signals are propagated to the running task and reject with FlowAbortedError.
  • Number inputs are interpreted as milliseconds.

Released under the MIT License.