WritableStream
Baseline 廣泛可用 *
注意:此功能在 Web Workers 中可用。
WritableStream 介面是 Streams API 的一部分,它提供了一個標準的抽象,用於將流式資料寫入一個稱為“接收器”(sink)的目標。該物件內建了反壓和佇列機制。
WritableStream 是一個 可轉移物件。
建構函式
WritableStream()-
建立一個新的
WritableStream物件。
例項屬性
WritableStream.locked只讀-
一個布林值,指示
WritableStream是否已鎖定到一個寫入器。
例項方法
WritableStream.abort()-
中止流,通知生產者無法再成功寫入流,並且流將立即進入錯誤狀態,丟棄所有排隊的寫入操作。
WritableStream.close()-
關閉流。
WritableStream.getWriter()-
返回一個
WritableStreamDefaultWriter的新例項,並將流鎖定到該例項。在流被鎖定的期間,在當前寫入器釋放之前,無法獲取其他寫入器。
示例
下面的示例演示了此介面的幾個功能。它使用自定義接收器建立 WritableStream。然後呼叫流的 getWriter() 方法,該方法返回一個 WritableStreamDefaultWriter 的例項。接下來,向流寫入幾個字串。最後,close() 返回一個 Promise,該 Promise 在所有寫入成功完成後解析。
js
const writableStream = new WritableStream(
// Implement the sink
{
write(chunk) {
const textElement = document.getElementById("text-output");
textElement.textContent += chunk;
},
},
);
const writer = writableStream.getWriter();
try {
writer.write("Hello, ");
writer.write("world!\n");
writer.write("This has been a demo!\n");
await writer.close(); // wait for all chunks to be written
console.log("All chunks written");
} catch (error) {
console.error("Stream error: ", error);
}
此示例不支援 Streams 的 反壓 功能。
規範
| 規範 |
|---|
| Streams # ws-class |
瀏覽器相容性
載入中…