ReadableStream: pipeTo() 方法
注意:此功能在 Web Workers 中可用。
WritableStream 介面的 pipeTo() 方法將當前的 ReadableStream 管道傳輸到指定的 WritableStream,並返回一個 Promise。當管道傳輸成功完成時,該 Promise 將 fulfilled;如果在過程中遇到任何錯誤,則會 rejected。
管道傳輸流通常會 鎖定 該流,直到管道傳輸結束,阻止其他讀取器鎖定它。
語法
pipeTo(destination)
pipeTo(destination, options)
引數
destination-
作為
ReadableStream最終目的地的WritableStream。 options可選-
管道傳輸到
writable流時應使用的選項。可用選項包括:preventClose-
如果設定為
true,源ReadableStream關閉將不再導致目標WritableStream關閉。一旦此過程完成,該方法將返回一個 fulfilled 的 promise,除非在關閉目標時遇到錯誤,在這種情況下,它將以該錯誤被 rejected。 preventAbort-
如果設定為
true,源ReadableStream中的錯誤將不再中止目標WritableStream。該方法將返回一個被 rejected 的 promise,其中包含源的錯誤,或在中止目標過程中發生的任何錯誤。 preventCancel-
如果設定為
true,目標WritableStream中的錯誤將不再取消源ReadableStream。在這種情況下,該方法將返回一個被 rejected 的 promise,其中包含源的錯誤,或在取消源過程中發生的任何錯誤。此外,如果目標可寫流最初就是關閉或正在關閉的狀態,則源可讀流將不再被取消。在這種情況下,該方法將返回一個被 rejected 的 promise,其中包含一個指示管道傳輸到已關閉流失敗的錯誤,或在取消源過程中發生的任何錯誤。 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());
})();
規範
| 規範 |
|---|
| Streams # ref-for-rs-pipe-to④ |
瀏覽器相容性
載入中…
另見
ReadableStream()建構函式- 管道鏈