ByteLengthQueuingStrategy: ByteLengthQueuingStrategy() constructor

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.

Note: This feature is available in Web Workers.

The ByteLengthQueuingStrategy() constructor creates and returns a ByteLengthQueuingStrategy object instance.

Syntax

js
new ByteLengthQueuingStrategy(options)

Parameters

options

An object with the following property:

highWaterMark

The total number of bytes that can be contained in the internal queue before backpressure is applied.

Unlike CountQueuingStrategy() where highWaterMark specifies a simple count of the number of chunks, with ByteLengthQueuingStrategy(), highWaterMark specifies a number of bytes — specifically, given a stream of chunks, how many bytes worth of those chunks (rather than a count of how many of those chunks) can be contained in the internal queue before backpressure is applied.

Return value

An instance of the ByteLengthQueuingStrategy object.

Exceptions

None.

Examples

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);

Specifications

Specification
Streams Standard
# blqs-constructor

Browser compatibility

BCD tables only load in the browser

See also