ReadableByteStreamController: метод enqueue()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Примечание: Эта функция доступна в рабочих потоках.
Метод enqueue() интерфейса ReadableByteStreamController помещает заданный фрагмент в ассоциированный с ним поток байтов для чтения (фрагмент копируется во внутренние очереди потока).
Этот метод следует использовать только для передачи данных в очередь, когда byobRequest null.
Синтаксис
enqueue(chunk)
Параметры
chunk-
Фрагмент для добавления в очередь.
Возвращаемое значение
None (undefined).
Исключения
TypeError-
Выбрасывается, если объект-источник не является
ReadableByteStreamController, или поток не может быть прочитан по какой-либо другой причине, или фрагмент не является объектом, или внутренний буфер массива фрагмента не существует, имеет нулевую длину или отсоединён. Также выбрасывается, если поток был закрыт.
Примеры
Пример в Использование потоков байтов для чтения > Создание потока байтов для чтения сокета-push показывает, как использовать enqueue() для копирования данных в поток, если нет открытого запроса byobRequest. Если есть byobRequest, то его следует использовать!
Ниже показано, как данные считываются в ArrayBuffer с использованием гипотетического метода socket.readInto() и затем добавляются в очередь (но только если данные были скопированы):
const buffer = new ArrayBuffer(DEFAULT_CHUNK_SIZE);
bytesRead = socket.readInto(buffer, 0, DEFAULT_CHUNK_SIZE);
if (bytesRead === 0) {
controller.close();
} else {
controller.enqueue(new Uint8Array(buffer, 0, bytesRead));
}
Спецификации
| Спецификация |
|---|
| Потоки # ref-for-rbs-controller-enqueue① |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
enqueue |
89 | 89 | 102 | 75 | Нет | 89 | 102 | 63 | Нет | 15.0 | 89 |
См. также
© 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/enqueue