Cloudflare Docs
Visit Workers on GitHub
Set theme to dark (⇧+D)



A reader is used when you want to read from a ReadableStream, rather than piping its output to a WritableStream.

A ReadableStreamDefaultReader is not instantiated via its constructor. Rather, it is retrieved from a ReadableStream:

const { readable, writable } = new TransformStream();
const reader = readable.getReader();


  • closed Promise

    • A promise indicating if the reader is closed. The promise is fulfilled when the reader stream closes and is rejected if there is an error in the stream.


  • read() Promise

    • A promise that returns the next available chunk of data being passed through the reader queue.
  • cancel(reasonstringoptional) void

    *   Cancels the stream. `reason` is an optional human-readable string indicating the reason for cancellation. `reason` will be passed to the underlying source’s cancel algorithm -- if this readable stream is one side of a [TransformStream](/workers/runtime-apis/streams/transformstream/), then its cancel algorithm causes the transform’s writable side to become errored with `reason`.
        <aside class="DocsMarkdown--aside" role="note" data-type="warning">
    Any data not yet read is lost.
  • releaseLock() void

    • Releases the lock on the readable stream. A lock cannot be released if the reader has pending read operations. A TypeError is thrown and the reader remains locked.