Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since March 2026, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
read() は ReadableStreamBYOBReader インターフェイスのメソッドで、ユーザーが提供したバッファー上のビューに、関連付けられた読み取り可能なバイトストリームからデータを読み込むために使用します。 データに対するリクエストは、データを説明しているものがあれば、ストリームの内部キューから満たされます。 ストリームキューが空の場合、リクエストは、基盤のバイトソースからのゼロコピー移譲として供給されるかもしれません。
このメソッドは、渡されたデータを読み込むバッファーに対するビューを引数として取り、プロミス (Promise) を返します。 このプロミスは、データが利用できるようになったとき、またはストリームが取り消される可能性があるときに value と done のプロパティを持つオブジェクトで履行されます。 ストリームがエラーになった場合、プロミスは関連するエラーオブジェクトと共に拒否されます。
データのチャンクが渡された場合、 value プロパティには新しいビューが格納されます。 これは read() メソッドに渡された元の view と同じバッファー/バッキングメモリー(および同じ型)上のビューになります。 プロミスが履行されると、メソッドに渡された元の view は切り離され、使えなくなることに注意してください。 ストリームが取り消された可能性がある場合、プロミスは value: undefined で履行されます。 この場合、 view のバッキングメモリー領域は破棄され、呼び出し側には返されません(ビューのバッファー内の前回読み込んだデータはすべて失われます)。
done プロパティは、さらなるデータが期待されるかどうかを示します。 この値は、ストリームが閉じられたり取り消されたり可能性がある場合は true に設定され、そうでない場合は false に設定されます。
読み込み先のビュー。
プロミス (Promise) で、ストリームの状態に応じた結果で履行または拒否されます。
取りうる値は次の通りです。
チャンクが利用でき、ストリームがまだアクティブであれば、プロミスは次の形のオブジェクトで履行されます。
theChunk は新しいデータを格納するビューです。 これは read() メソッドに渡された view と同じ型で、同じバッキングメモリー上のビューです。 元の view は切り離されて使えなくなりました。
ストリームが閉じられた場合、プロミスは(theChunk を上記と同じプロパティを持つ)形式のオブジェクトで履行されます。
If the stream is cancelled, the promise fulfills with an object of the form:
In this case the backing memory is discarded.
If the stream throws an error, the promise rejects with the relevant error.
元のオブジェクトが ReadableStreamBYOBReader ではないか、ストリームにオーナーがいないか、ビューがオブジェクトでないか、切り離されているか、ビューの長さが 0 であるか、(待機中の読み取りリクエストがある場合に) ReadableStreamBYOBReader.releaseLock() が呼び出された場合。
以下の例は、読み取り可能なバイトストリームの使用から取ったものです。
まず、ストリーム上で ReadableStream.getReader() を使用してリーダーを作成します。 options 引数に mode: "byob" を指定します。 ArrayBuffer も作成する必要があります。これはビューの「バッキングメモリー」で、ここに書き込むことになります。
リーダーを使用する関数を下記に示します。 これは read() メソッドを再帰的に呼び出して、データをバッファーに読み込みます。 このメソッドは Uint8Array 型付き配列を取ります。これは、元の配列バッファーでまだ書き込まれていない部分のビューです。 ビューの引数は、前回呼び出された際に受け取ったデータから計算され、元の配列バッファーへのオフセットを定義します。
ストリームにデータがなくなると、read() メソッドは done プロパティを true に設定したオブジェクトで履行され、関数を返します。
| Streams # byob-reader-read |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2024年9月11日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.