```sh npm install --save extra-abort # or yarn add extra-abort ```
npm install extra-abortsh
npm install --save extra-abort
or
yarn add extra-abort
`API
$3
The WHATWG AbortController and AbortSignal.$3
`ts
class AbortError extends CustomError {}
`It is not the real
AbortError of fetch,
but you can do err instance AbortError like it is,
because it can recognizes other errors that match the pattern of AbortError.$3
`ts
class LinkedAbortController extends AbortController {
constructor(signal: AbortSignal)
}
`It is a special
AbortController that takes an AbortSignal as a parameter.
It will abort itself when its parameter signal aborts,
you can make it abort by calling its abort method too.$3
`ts
function timeoutSignal(ms: number): AbortSignal
`It will abort after
ms milliseconds.`ts
await fetch('http://example.com', { signal: timeoutSignal(5000) })
`$3
`ts
/**
* @throws {AbortError}
*/
function withAbortSignal(signal: AbortSignal | Falsy, fn: () => PromiseLike): Promise
`If
AbortSignal is aborted, the promise will be rejected with AbortError.$3
`ts
function raceAbortSignals(signals: Array): AbortSignal
`The
Promise.race function for AbortSignal.$3
`ts
function isAbortSignal(val: unknown): val is AbortSignal
`$3
`ts
function lastCallOnly(
fn: (...args: [...args: Args, signal: AbortSignal]) => PromiseLike
): (...args: [...args: Args, signal: AbortSignal | Falsy]) => Promise
``