1. 開発者向けのウェブ技術
  2. Web API
  3. ReadableStreamDefaultController
  4. enqueue()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

ReadableStreamDefaultController: enqueue() メソッド

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2020年1月以降、すべてのブラウザーで利用可能です。

enqueue()ReadableStreamDefaultController インターフェイスのメソッドで、受け取ったのチャンクを関連するストリームのキューに入れます。

構文

js
enqueue(chunk)

引数

chunk

キューに入れるチャンク。

返値

なし (undefined)。

例外

TypeError

ソースオブジェクトが ReadableStreamDefaultController ではありません。

次の単純な例では、コンストラクターを使用してカスタムの ReadableStream を作成します(完全なコードについては、単純なランダムストリームの例を参照)。 start() 関数は、1 秒ごとにテキストのランダムな文字列を生成し、それをストリームのキューに入れます — controller.enqueue(string) を参照。 ReadableStream.cancel() が何らかの理由で呼び出された場合、生成を停止するための cancel() 関数も提供します。

ボタンが押されると、生成を停止し、ReadableStreamDefaultController.close() を使用してストリームを閉じ、ストリームからデータを読み取る別の関数を実行します。

js
let interval;
const stream = new ReadableStream({
 start(controller) {
 interval = setInterval(() => {
 let string = randomChars();
 // ストリームに文字列を追加
 controller.enqueue(string);
 // それを画面に表示
 let listItem = document.createElement("li");
 listItem.textContent = string;
 list1.appendChild(listItem);
 }, 1000);
 button.addEventListener("click", () => {
 clearInterval(interval);
 fetchStream();
 controller.close();
 });
 },
 pull(controller) {
 // この例では実際には pull は必要ありません
 },
 cancel() {
 // リーダーがキャンセルされた場合に呼び出されるため、
 // 文字列の生成を停止する必要があります
 clearInterval(interval);
 },
});

仕様書

仕様書
Streams
# ref-for-rs-default-controller-enqueue1

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /