From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../close/index.html | 97 ++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 files/ja/web/api/readablestreamdefaultcontroller/close/index.html (limited to 'files/ja/web/api/readablestreamdefaultcontroller/close') diff --git a/files/ja/web/api/readablestreamdefaultcontroller/close/index.html b/files/ja/web/api/readablestreamdefaultcontroller/close/index.html new file mode 100644 index 0000000000..d9f299f563 --- /dev/null +++ b/files/ja/web/api/readablestreamdefaultcontroller/close/index.html @@ -0,0 +1,97 @@ +--- +title: ReadableStreamDefaultController.close() +slug: Web/API/ReadableStreamDefaultController/close +tags: + - API + - Method + - ReadableStreamDefaultController + - Reference + - Streams + - close +translation_of: Web/API/ReadableStreamDefaultController/close +--- +
{{APIRef("Streams")}}
+ +

{{domxref("ReadableStreamDefaultController")}} インターフェイスの close() メソッドは、関連するストリームを閉じます。

+ +
+

リーダーは、以前にキューに入れられたチャンクをストリームから読み取ることができますが、それらを読み取とってしまうとストリームは閉じられます。 ストリームを完全に取り除き、キューに入れられたチャンクを破棄する場合は、{{domxref("ReadableStream.cancel()")}} または {{domxref("ReadableStreamDefaultReader.cancel()")}} を使用します。

+
+ +

構文

+ +
readableStreamDefaultController.close();
+ +

パラメーター

+ +

なし。

+ +

戻り値

+ +

undefined

+ +

例外

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

+ +

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

+ +

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

+ +
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', function() {
+      clearInterval(interval);
+      fetchStream();
+      controller.close();
+    })
+  },
+  pull(controller) {
+    // この例では実際には pull は必要ありません
+  },
+  cancel() {
+    // リーダーがキャンセルされた場合に呼び出されるため、
+    // 文字列の生成を停止する必要があります
+    clearInterval(interval);
+  }
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName("Streams","#rs-default-controller-close","close()")}}{{Spec2('Streams')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.ReadableStreamDefaultController.close")}}

-- cgit v1.2.3-54-g00ecf