WritableStreamDefaultWriter.ready
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since June 2022.
WritableStreamDefaultWriter
接口的只读属性 ready
返回一个 Promise
,当流填充内部队列的所需大小从非正数变为正数时兑现,表明它不再应用背压。
值
一个 Promise
。
示例
以下示例使用了 ready
属性的两种用法。第一种使用 ready
来确保 WritableStream
已完成写入,因此能够保证其已经准备好接收新的数据。第二种也检查 WritableStream
是否完成写入,但是这一次是因为写入操作必须在 writer 关闭之前完成。
js
function sendMessage(message, writableStream) {
// defaultWriter is of type WritableStreamDefaultWriter
var defaultWriter = writableStream.getWriter();
var encoder = new TextEncoder();
var encoded = encoder.encode(message, { stream: true });
encoded.forEach(function (chunk) {
// Make sure the stream and its writer are able to
// receive data.
defaultWriter.ready.then(function () {
defaultWriter
.write(chunk)
.then(function () {
console.log("Chunk written to sink.");
})
.catch(function (err) {
console.log("Chunk error: " + err);
});
});
// Call ready again to ensure that all chunks are written
// before closing the writer.
defaultWriter.ready.then(function () {
defaultWriter
.close()
.then(function () {
console.log("All chunks written");
})
.catch(function (err) {
console.log("Stream error: " + err);
});
});
});
}
规范
Specification |
---|
Streams # ref-for-default-writer-ready⑨ |