WritableStreamDefaultWriter: ready プロパティ

readyWritableStreamDefaultWriter インターフェイスの読み取り専用プロパティで、ストリームの内部キューの目的のサイズが非正から正に移行したときに解決する Promise を返し、背圧が適用されなくなったことを通知します。

Promise です。

次の例は、ready プロパティの 2 つの使用法を示しています。 最初は ready を使用して、WritableStream が書き込みを完了し、バイナリチャンクを送信する前にデータを受信できるようにします。 2 番目も、WritableStream の書き込みが完了しているかどうかをチェックしますが、今度はライターを閉じる前に書き込みを終了する必要があるためです。

js
function sendMessage(message, writableStream) {
  // defaultWriter は WritableStreamDefaultWriter 型です
  const defaultWriter = writableStream.getWriter();
  const encoder = new TextEncoder();
  const encoded = encoder.encode(message, { stream: true });
  encoded.forEach((chunk) => {
    // ストリームとそのライターがデータを
    // 受信できることを確認します。
    defaultWriter.ready
      .then(() => defaultWriter.write(chunk))
      .then(() => {
        console.log("Chunk written to sink.");
      })
      .catch((err) => {
        console.error(`Chunk error: ${err}`);
      });
    // ライターを閉じる前にすべてのチャンクが
    // 確実に書き込まれるように、ready を再度呼び出します。
    defaultWriter.ready
      .then(() => defaultWriter.close())
      .then(() => {
        console.log("All chunks written");
      })
      .catch((err) => {
        console.error(`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