Spec-Zone.ru › Web APIs

ReadableByteStreamController

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

Интерфейс ReadableByteStreamController API потоков представляет собой контроллер для потока байтов для чтения. Он позволяет управлять состоянием и внутренней очередью ReadableStream с базовым источником байтов и обеспечивает эффективную передачу данных без копирования из базового источника потребителю, когда внутренняя очередь потока пуста.

Экземпляр этого типа контроллера создается, если объект underlyingSource со свойством type="bytes" передается в качестве аргумента конструктору ReadableStream(). Объект underlyingSource также может определять функции обратного вызова start() и pull(). Они вызываются с контроллером в качестве параметра, чтобы настроить базовый источник и запросить данные по мере необходимости.

Базовый источник использует контроллер для передачи данных в поток через свойство byobRequest или метод enqueue(). byobRequest — это объект ReadableStreamBYOBRequest, представляющий ожидающий запрос от потребителя на передачу данных напрямую без копирования потребителю. Необходимо использовать byobRequest для копирования данных, если они существуют (не используйте enqueue() в этом случае)! Если базовому источнику необходимо передать данные в поток, а byobRequest является null, то источник может вызвать enqueue(), чтобы добавить данные в внутренние очереди потока.

Обратите внимание, что byobRequest создается только в режиме "BYOB", когда есть запрос от читателя и внутренняя очередь потока пуста. Режим "BYOB" активируется при использовании ReadableStreamBYOBReader (обычно создаваемого вызовом ReadableStream.getReader() с аргументом { mode: 'byob' }). Он также активируется при использовании стандартного читателя и указании autoAllocateChunkSize в конструкторе ReadableController().

Базовый байтовый источник также может использовать контроллер для close() потока, когда все данные отправлены, и сообщать об ошибках из базового источника с помощью error(). Свойство контроллера desiredSize используется для применения "обратной загрузки", информируя базовый источник о размере внутренней очереди (малые значения указывают, что очередь заполняется, что подразумевает для базового источника, что желательно приостановить или ограничить приток).

Обратите внимание, что, хотя контроллер в первую очередь используется базовым источником байтов, нет причин, по которым он не может храниться и использоваться другими частями системы для сигнализации потоку.

Конструктор

Нет. Экземпляры ReadableByteStreamController автоматически создаются, если объект underlyingSource со свойством type="bytes" передается в конструктор ReadableStream().

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

ReadableByteStreamController.byobRequest Только для чтения

Возвращает текущий запрос BYOB, или null если нет ожидающих запросов.

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

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

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

ReadableByteStreamController.close()

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

ReadableByteStreamController.enqueue()

Добавляет заданный фрагмент в связанный поток.

ReadableByteStreamController.error()

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

Примеры

Контроллер используется базовым источником для передачи или добавления данных в очередь, для сигнализации о том, что поток больше не содержит данных (закрыт) или возникла ошибка. Он также используется для сигнализации базовому источнику о желаемой скорости данных «сверху» с помощью desiredSize.

Пример в Использование потоков чтения байтов, в частности Создание потока чтения байтов через сокет, демонстрирует большинство из этих случаев.

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
ReadableByteStreamController 89 89 102 75 Нет 89 102 63 Нет 15.0 89
byobRequest 89 89 102 75 Нет 89 102 63 Нет 15.0 89
close 89 89 102 75 Нет 89 102 63 Нет 15.0 89
desiredSize 89 89 102 75 Нет 89 102 63 Нет 15.0 89
enqueue 89 89 102 75 Нет 89 102 63 Нет 15.0 89
error 89 89 102 75 Нет 89 102 63 Нет 15.0 89

См. также

  • Концепции 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/ReadableByteStreamController

Spec-Zone.ru

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