WritableStream
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since May 2022.
* Some parts of this feature may have varying levels of support.
Note: This feature is available in Web Workers.
Giao diện WritableStream của Streams API cung cấp một bản tóm tắt tiêu chuẩn để ghi dữ liệu truyền trực tuyến đến đích, được gọi là phần chìm.
Đối tượng này đi kèm với áp suất ngược và xếp hàng tích hợp.
WritableStream là một đối tượng có thể chuyển nhượng.
Trình xây dựng
WritableStream()-
Tạo một đối tượng
WritableStreammới.
Thuộc tính phiên bản
WritableStream.lockedRead only-
Một giá trị boolean cho biết
WritableStreamcó bị khóa đối với người ghi hay không.
Các phương thức thực thể
WritableStream.abort()-
Hủy bỏ luồng, báo hiệu rằng nhà sản xuất không còn có thể ghi thành công vào luồng nữa và nó sẽ ngay lập tức được chuyển sang trạng thái lỗi, mọi thao tác ghi trong hàng đợi sẽ bị loại bỏ.
WritableStream.close()-
Đóng luồng.
WritableStream.getWriter()-
Trả về phiên bản mới của
WritableStreamDefaultWritervà khóa luồng vào phiên bản đó. Trong khi luồng bị khóa, không thể lấy được trình ghi nào khác cho đến khi luồng này được phát hành.
Ví dụ
Ví dụ sau minh họa một số tính năng của giao diện này. Nó tạo WritableStream bằng một bồn rửa tùy chỉnh. Sau đó, nó gọi phương thức getWriter() của luồng, phương thức này trả về một phiên bản WritableStreamDefaultWriter. Tiếp theo, một số chuỗi được ghi vào luồng. Cuối cùng, close() trả về một lời hứa sẽ được giải quyết khi tất cả quá trình ghi đã hoàn tất thành công.
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);
}
Ví dụ này không hỗ trợ tính năng backpressure của Luồng.
Thông số kỹ thuật
| Specification |
|---|
| Streams> # ws-class> |