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

x/proc/legacy/examples/deps.ts>WritableIterable

A high-level way to run child processes that is easy, flexible, powerful, and prevents resource leaks.
Go to Latest
class WritableIterable
implements AsyncIterable<T>
import { WritableIterable } from "https://deno.land/x/proc@0.20.8/legacy/examples/deps.ts";

Invert the normal data flow of an AsyncIterable, allowing you to push writes on one side and iterate on the other.

The write() side must call close() when all write operations are done.

Constructors

new
WritableIterable(options?: { onclose?: () => void | Promise<void>; })

Create a new PushIterable.

Properties

private
_closed: boolean
private
queue: QueueEntry<Some<T> | None>[]
readonly
closed

Methods

private
addEmptyPromiseToQueue(): void

Add an unresolved promise to the end of the queue.

close(error?: Error): Promise<void>

Close the iterable. This must be called.

Once closed, subsequent calls to write(...) will throw an error.

It is safe to call close() multiple times. The error (or no error) passed on the first call will be honored.

write(item: T): Promise<void>

Write an item.