Spec-Zone.ru › Web APIs

ReadableStreamDefaultController: метод close()

Примечание: Эта функция доступна в Веб-воркерах.

Метод close() интерфейса ReadableStreamDefaultController закрывает связанный поток.

Читатели всё ещё смогут прочитать все ранее поставленные в очередь куски данных из потока, но как только эти данные будут прочитаны, поток станет закрытым. Если вы хотите полностью избавиться от потока и отбросить все поставленные в очередь куски данных, используйте ReadableStream.cancel() или ReadableStreamDefaultReader.cancel().

Синтаксис

close()

Параметры

Нет.

Возвращаемое значение

Нет (undefined).

Исключения

TypeError

Выбрасывается, если close() вызывается, когда поток не читается — потому что он уже закрыт, отменён или содержит ошибку — или потому что подлежащий источник запросил его закрытие, но пока не выполнил это, так как ещё есть куски данных в очереди для чтения.

Примеры

В следующем простом примере создаётся пользовательский ReadableStream с помощью конструктора (см. наш пример простого случайного потока для полного кода). Функция start() генерирует случайную строку текста каждую секунду и ставит её в очередь в поток. Также предоставляется функция cancel(), которая останавливает генерацию, если вызывается ReadableStream.cancel() по какой-либо причине.

При нажатии кнопки генерация останавливается, поток закрывается с помощью close(), и выполняется другая функция, которая считывает данные из потока.

let interval;
const stream = new ReadableStream({
  start(controller) {
    interval = setInterval(() => {
      let string = randomChars();

      // Add the string to the stream
      controller.enqueue(string);

      // show it on the screen
      let listItem = document.createElement("li");
      listItem.textContent = string;
      list1.appendChild(listItem);
    }, 1000);

    button.addEventListener("click", () => {
      clearInterval(interval);
      fetchStream();
      controller.close();
    });
  },
  pull(controller) {
    // We don't really need a pull in this example
  },
  cancel() {
    // This is called if the reader cancels,
    // so we should stop generating strings
    clearInterval(interval);
  },
});

Спецификации

Спецификация
Потоки
# ref-for-rs-default-controller-close①

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
close 52 79 65 39 10 52 65 41 10 6.0 52

См. также

  • Использование читаемых потоков
  • ReadableStreamDefaultController

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController/close

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API