ReadableByteStreamController: свойство byobRequest
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Примечание: Эта функция доступна в Web Workers.
Свойство byobRequest только для чтения интерфейса ReadableByteStreamController возвращает текущий запрос BYOB или null, если запросов нет.
Подлежащий байтовый источник должен проверять это свойство и использовать его для записи данных в поток, если оно существует (а не использовать ReadableByteStreamController.enqueue()). Это приведет к эффективному обмену данными нулевого размера потребителю.
Значение
Объект экземпляра ReadableStreamBYOBRequest или null.
Примеры
Пример в Использование потоков байтов для чтения > Создание потока байтов для чтения из сокета демонстрирует, как использовать byobRequest для передачи данных (если они существуют), в противном случае копируя данные во внутренние очереди потока с помощью ReadableByteStreamController.enqueue().
Релевантный код приведён ниже. Если byobRequest существует, данные считываются в controller.byobRequest.view, а затем вызывается ReadableStreamBYOBRequest.respond() для сигнализации о количестве данных, готовых к передаче.
if (controller.byobRequest) {
const v = controller.byobRequest.view;
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
controller.close();
}
controller.byobRequest.respond(bytesRead);
} else {
// Write to data using enqueue().
}
Спецификации
| Спецификация |
|---|
| Потоки # ref-for-rbs-controller-byob-request② |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
byobRequest |
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/byobRequest