WritableStreamDefaultWriter: ready 属性
注意:此功能在Web 工作线程中可用。
ready
是 WritableStreamDefaultWriter
接口的只读属性,它返回一个 Promise
,当流的内部队列的所需大小从非正数变为正数时,该 Promise 将被解析,表示它不再应用背压。
值
一个 Promise
。
示例
以下示例显示了 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}`);
});
});
}
规范
规范 |
---|
流标准 # ref-for-default-writer-ready⑨ |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。