ReadableStream: метод pipeTo()
Примечание: Эта функция доступна в Потоках выполнения JavaScript (Web Workers).
Метод pipeTo() интерфейса ReadableStream передаёт текущий ReadableStream в заданный WritableStream и возвращает Promise, который выполняется при успешном завершении процесса передачи или отклоняется, если возникли какие-либо ошибки.
Передача потока обычно блокирует его на время передачи, что предотвращает блокировку другими читателями.
Синтаксис
pipeTo(destination) pipeTo(destination, options)
Параметры
destination-
WritableStream, который является конечным пунктом назначения дляReadableStream. optionsНеобязательно-
Параметры, которые должны быть использованы при передаче в поток
writable. Доступные параметры:preventClose-
Если это установлено в
true, закрытие исходного потокаReadableStreamбольше не вызовет закрытие целевого потокаWritableStream. Метод вернёт выполненное обещание после завершения этого процесса, если при закрытии целевого потока не возникнет ошибка, в противном случае он будет отклонен с этой ошибкой. preventAbort-
Если это установлено в
true, ошибки в исходном потокеReadableStreamбольше не будут прерывать целевой потокWritableStream. Метод вернёт обещание, отклоненное с ошибкой исходного потока или любой ошибкой, возникшей при прерывании целевого потока. preventCancel-
Если это установлено в
true, ошибки в целевом потокеWritableStreamбольше не будут отменять исходный потокReadableStream. В этом случае метод вернёт обещание, отклоненное с ошибкой исходного потока или любой ошибкой, возникшей при отмене исходного потока. Кроме того, если целевой поток начинает быть закрытым или закрывается, исходный поток больше не будет отменён. В этом случае метод вернёт обещание, отклоненное с ошибкой, указывающей на то, что передача в закрытый поток не удалась, или с любой ошибкой, возникшей при отмене исходного потока. signal-
Если установлено в объект
AbortSignal, текущие операции передачи могут быть прерваны с помощью соответствующего объектаAbortController.
Возвращаемое значение
Promise , который разрешается при завершении процесса передачи.
Исключения
TypeError-
Объекты
writableStreamи/илиreadableStreamне являются потоком чтения/записи или один или оба потока заблокированы.
Примеры
// Fetch the original image
fetch("png-logo.png")
// Retrieve its body as ReadableStream
.then((response) => response.body)
.then((body) => body.pipeThrough(new PNGTransformStream()))
.then((rs) => rs.pipeTo(new FinalDestinationStream()));
Тот же пример, но с использованием await:
(async () => {
// Fetch the original image
const response = await fetch("png-logo.png");
// Retrieve its body as ReadableStream
await response.body
.pipeThrough(new PNGTransformStream())
.pipeTo(new FinalDestinationStream());
})();
Спецификации
| Спецификация |
|---|
| Потоки # ref-for-rs-pipe-to④ |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
pipeTo |
59 | 79 | 100 | 46 | 10.1 | 59 | 100 | 43 | 10.3 | 7.0 | 59 |
См. также
-
ReadableStream()конструктор - Цепочки передачи
© 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/ReadableStream/pipeTo