Spec-Zone.ru › Web APIs

ReadableStreamDefaultController

Примечание: Эта функция доступна в Потоках выполнения Web Workers.

Интерфейс ReadableStreamDefaultController API потоков Streams API представляет собой контроллер, позволяющий управлять состоянием и внутренней очередью ReadableStream. Контроллеры по умолчанию предназначены для потоков, которые не являются потоками байтов.

Конструктор

Нет. Экземпляры ReadableStreamDefaultController создаются автоматически во время создания ReadableStream.

Свойства экземпляра

ReadableStreamDefaultController.desiredSize Только для чтения

Возвращает желаемый размер, необходимый для заполнения внутренней очереди потока.

Методы экземпляра

ReadableStreamDefaultController.close()

Закрывает связанный поток.

ReadableStreamDefaultController.enqueue()

Вставляет указанный фрагмент в связанный поток.

ReadableStreamDefaultController.error()

Приводит к ошибке любых будущих взаимодействий со связанным потоком.

Примеры

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

Обратите внимание, что объект ReadableStreamDefaultController предоставляется в качестве параметра функций start() и pull().

При нажатии кнопки генерация останавливается, поток закрывается с помощью ReadableStreamDefaultController.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);
  },
});

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

Спецификация
Потоки
# rs-default-controller-class

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

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

См. также

  • Концепции API потоков
  • Использование потоков чтения
  • ReadableStream
  • Визуализатор потоков WHATWG для базовой визуализации потоков чтения, записи и преобразования.
  • Web-streams-polyfill или sd-streams - полифилы

© 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

Spec-Zone.ru

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