WritableStreamDefaultWriter: ready 属性
注意:此功能在 Web Workers 中可用。
ready 是 WritableStreamDefaultWriter 接口的一个只读属性,它返回一个 Promise。当流内部队列的期望大小从非正值变为正值时,此 Promise 会被 resolve,表示流不再施加背压。
值
示例
以下示例展示了 ready 属性的两种用法。第一种用法是使用 ready 来确保 WritableStream 完成写入并能够接收数据,然后再发送一个二进制块。第二种用法也检查 WritableStream 是否完成了写入,但这次是因为在关闭写入器之前必须完成写入操作。
js
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}`);
});
});
}
规范
| 规范 |
|---|
| Streams # ref-for-default-writer-ready⑨ |
浏览器兼容性
加载中…