DHTML: WritableStreamDefaultWriter.ready プロパティ  編集:2022.01.12 by T.A.

実験的: これは実験的な機能です。本番で使用する前にブラウザー互換性一覧表をチェックしてください。

ストリームの内部キューの目的のサイズが非正から正に移行したときに解決する Promise を返し、バックプレッシャーが適用されなくなったことを通知します。→MS

構文
promise = writableStreamDefaultWriter.ready
writableStreamDefaultWriter
WritableStreamDefaultWriter

Promise

次の例は、ready プロパティの2つの使用法を示しています。最初は ready を使用して、WritableStream が書き込みを完了し、バイナリチャンクを送信する前にデータを受信できるようにします。2番目も、WritableStream の書き込みが完了しているかどうかをチェックしますが、今度はライターを閉じる前に書き込みを終了する必要があるためです。
function sendMessage(message, writableStream) {
  // defaultWriter は WritableStreamDefaultWriter 型です
  var defaultWriter = writableStream.getWriter();
  var encoder = new TextEncoder();
  var encoded = encoder.encode(message, {stream: true});
  encoded.forEach(function(chunk) {
    // ストリームとそのライターがデータを
    // 受信できることを確認します。
    defaultWriter.ready
    .then(function() {
      defaultWriter.write(chunk)
      .then(function() {
        console.log("Chunk written to sink.);
      })
      .catch(function(err) {
        console.log("Chunk error: " + err);
      });
    });
    // ライターを閉じる前にすべてのチャンクが
    // 確実に書き込まれるように、ready を再度呼び出します。
    defaultWriter.ready
    .then(function() {
      defaultWriter.close()
      .then(function() {
        console.log("All chunks written");
      })
      .catch(function(err) {
        console.log("Stream error: " + err);
      });
    });
  });
}

テスト
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: