ByteLengthQueuingStrategy: highWaterMark プロパティ

Baseline 2022

Newly available

Since June 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

関連情報