WritableStreamDefaultWriter.ready

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⑨

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
ready

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support