ReadableByteStreamController: метод close()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод close() интерфейса ReadableByteStreamController закрывает связанный поток.
Этот метод может вызываться базовым источником, когда источник данных исчерпан/завершен.
Примечание: Чтение ранее внесённых фрагментов данных из потока по-прежнему возможно, но после их чтения поток будет закрыт. Однако если при вызове close() существует активный и частично записанный byobRequest, поток будет иметь ошибку.
Синтаксис
close()
Параметры
Нет.
Возвращаемое значение
None (undefined).
Исключения
TypeError-
Выбрасывается, если объект-источник не является
ReadableByteStreamController, уже закрыт или поток по какой-либо причине недоступен для чтения.
Примеры
Пример в Использование потоков байтов для чтения > Создание потока байтов для чтения сокета показывает, как закрыть поток, когда данных больше нет.
Ниже представлен соответствующий код. Он полагается на гипотетический метод readInto(), который возвращает 0 байт только тогда, когда данных больше нет.
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
controller.close();
}
После вызова close поток будет закрыт, и все потребители получат об этом уведомление. Например, если используется ReadableStreamBYOBReader, все запросы read() будут завершаться с done: true, а обещание от ReadableStreamBYOBReader.closed также будет выполнено.
Спецификации
| Спецификация |
|---|
| Потоки # ref-for-rbs-controller-close① |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView Android | |
close |
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/close