Skip to content

Create a Signal

asyncSignal creates a reusable async signal — you can manually resolve or reject it and reuse it after a reset, like Promise.withResolvers() but more flexible.

Basic Usage

typescript
import { asyncSignal } from "asyncsignal";

// Create a basic signal
const signal = asyncSignal();

// Wait for the signal to resolve or reject
await signal();

// Resolve the signal
signal.resolve("resolved value");

// Or reject the signal
signal.reject(new Error("rejected error"));

Notes

  • A newly created signal is in the pending state.
  • signal() returns a Promise that settles on resolve or reject.
  • A signal can be reused after calling reset() (see Reset & Auto Reset).

Signal Control

The core of asyncSignal is "signal control" — a reusable, manually resolvable / rejectable signal. The key difference from Promise.withResolvers() is that one signal can be reset and reused repeatedly.

Released under the MIT License.