[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ja/docs/Web/API/ReadableStreamBYOBReader [Back]  [Original]

ReadableStreamBYOBReader - Web API | MDN

MDN Web Docs

View in English Always switch to English

ReadableStreamBYOBReader

Baseline 2026 *

20263

*

ReadableStreamBYOBReader API ReadableStream

ReadableStream.getReader() mode: "byob" type: "bytes"

read() read()

(ReadableStreamDefaultReader) read()

ReadableStreamBYOBReader()

ReadableStreamBYOBReader

ReadableStreamBYOBReader.closed

ReadableStreamBYOBReader.cancel()

reason

ReadableStreamBYOBReader.read()

promise

ReadableStreamBYOBReader.releaseLock()

ReadableStream.getReader() options mode: "byob" "Bring Your Own Buffer" ArrayBuffer

js
const reader = stream.getReader({ mode: "byob" });
let buffer = new ArrayBuffer(4000);

read() Uint8Array

js
readStream(reader);

function readStream(reader) {
  let bytesReceived = 0;
  let offset = 0;

  while (offset < buffer.byteLength) {
    // read() returns a promise that resolves when a value has been received
    reader
      .read(new Uint8Array(buffer, offset, buffer.byteLength - offset))
      .then(function processBytes({ done, value }) {
        // Result objects contain two properties:
        // done - true if the stream has already given all its data.
        // value - some data. Always undefined when done is true.

        if (done) {
          // There is no more data in the stream
          return;
        }

        buffer = value.buffer;
        offset += value.byteLength;
        bytesReceived += value.byteLength;

        // Read some more, and call this function again
        return reader
          .read(new Uint8Array(buffer, offset, buffer.byteLength - offset))
          .then(processBytes);
      });
  }
}

read() done true

ReadableStreamBYOBReader.closed

js
reader.closed
  .then(() => {
    // Resolved - code to handle stream closing
  })
  .catch(() => {
    // Rejected - code to handle error
  });

ReadableStreamBYOBReader.cancel() cancel()

cancel

js
button.addEventListener("click", () => {
  reader.cancel("user choice").then(() => console.log("cancel complete"));
});

releaseLock()

js
reader.releaseLock();

Streams
# byob-reader-class


Web Proxy Viewer  |  New URL  |  Original Page