WritableStreamDefaultWriter: ready property
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.
Note: This feature is available in Web Workers.
ready là thuộc tính chỉ đọc của giao diện
WritableStreamDefaultWriter trả về một Promise
được giải quyết khi kích thước mong muốn của hàng đợi nội bộ của luồng chuyển từ
không dương sang dương, báo hiệu rằng nó không còn áp dụng áp lực ngược nữa.
Giá trị
Một Promise.
Ví dụ
Ví dụ sau cho thấy hai cách dùng của thuộc tính ready. Cách đầu tiên dùng
ready để bảo đảm rằng WritableStream đã ghi xong và
do đó có thể nhận dữ liệu trước khi gửi một khối nhị phân. Cách thứ hai cũng kiểm tra xem
WritableStream đã ghi xong hay chưa, nhưng lần này là vì việc ghi
phải hoàn tất trước khi trình ghi có thể được đóng.
function sendMessage(message, writableStream) {
// defaultWriter is of type WritableStreamDefaultWriter
const defaultWriter = writableStream.getWriter();
const encoder = new TextEncoder();
const encoded = encoder.encode(message);
encoded.forEach((chunk) => {
// Make sure the stream and its writer are able to
// receive data.
defaultWriter.ready
.then(() => defaultWriter.write(chunk))
.then(() => {
console.log("Chunk written to sink.");
})
.catch((err) => {
console.error(`Chunk error: ${err}`);
});
// Call ready again to ensure that all chunks are written
// before closing the writer.
defaultWriter.ready
.then(() => defaultWriter.close())
.then(() => {
console.log("All chunks written");
})
.catch((err) => {
console.error(`Stream error: ${err}`);
});
});
}
Thông số kỹ thuật
| Specification |
|---|
| Streams> # ref-for-default-writer-ready⑨> |