ByteLengthQueuingStrategy: highWaterMark プロパティ

ByteLengthQueuingStrategy.highWaterMark は読み取り専用プロパティで、背圧が適用される前に内部キューに格納することができる総バイト数を返します。

メモ: CountQueuingStrategy() では highWaterMark 引数に単純な塊の数を指定しますが、 ByteLengthQueuingStrategy() では、 highWaterMark 引数はバイト数を指定します。具体的には、チャンクのストリームが指定された場合に、背圧が適用される前に内部キューに何バイト分のチャンクを格納することができるか(チャンクの数ではありません)を指定します。

整数です。

js
const queuingStrategy = new ByteLengthQueuingStrategy({
  highWaterMark: 1 * 1024,
});

const readableStream = new ReadableStream(
  {
    start(controller) {
      // …
    },
    pull(controller) {
      // …
    },
    cancel(err) {
      console.log("stream error:", err);
    },
  },
  queuingStrategy,
);

const size = queuingStrategy.size(chunk);
console.log(`highWaterMark value: ${queuingStrategy.highWaterMark}$`);

仕様書

Specification
Streams Standard
# ref-for-blqs-high-water-mark①

ブラウザーの互換性

BCD tables only load in the browser

関連情報