Overview
functionCore Runtime

linkAbortSignal

Links a parent signal to a child controller.

Signature

tsSignature
export function linkAbortSignal(parent: AbortSignal, controller: AbortController): () => void;

Imports

tsImport
import { linkAbortSignal } from "@/lib/flow/core/runtime";
import { linkAbortSignal } from "@/lib/flow";

Parameters

parent
AbortSignal

Parent signal to observe.

controller
AbortController

Child controller to abort when the parent aborts.

Returns

Cleanup function that unlinks the abort listener.

Return type
() => void

Details

The returned cleanup function removes the listener when the child work has settled.

when

Branches between two behaviors using a predicate function.

function

Source

tsflow/core/runtime.ts:312-322
export function linkAbortSignal(parent: AbortSignal, controller: AbortController): () => void {
if (parent.aborted) {
abortController(controller, parent.reason);
return () => {};
}
const onAbort = () => abortController(controller, parent.reason);
parent.addEventListener("abort", onAbort, { once: true });
return () => parent.removeEventListener("abort", onAbort);
}