Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/proc/legacy/deps.ts>abortable

A high-level way to run child processes that is easy, flexible, powerful, and prevents resource leaks.
Go to Latest
function abortable
import { abortable } from "https://deno.land/x/proc@0.20.13/legacy/deps.ts";

Make Promise abortable with the given signal.

Examples

Example 1

import { abortable } from "https://deno.land/std@0.224.0/async/mod.ts";
import { delay } from "https://deno.land/std@0.224.0/async/mod.ts";

const p = delay(1000);
const c = new AbortController();
setTimeout(() => c.abort(), 100);

// Below throws `DOMException` after 100 ms
await abortable(p, c.signal);

Parameters

p: Promise<T>
signal: AbortSignal

Returns

Promise<T>

Make AsyncIterable abortable with the given signal.

Examples

Example 1

import { abortable } from "https://deno.land/std@0.224.0/async/mod.ts";
import { delay } from "https://deno.land/std@0.224.0/async/mod.ts";

const p = async function* () {
  yield "Hello";
  await delay(1000);
  yield "World";
};
const c = new AbortController();
setTimeout(() => c.abort(), 100);

// Below throws `DOMException` after 100 ms
// and items become `["Hello"]`
const items: string[] = [];
for await (const item of abortable(p(), c.signal)) {
  items.push(item);
}

Parameters

p: AsyncIterable<T>
signal: AbortSignal

Returns

AsyncGenerator<T>