ReadableByteStreamController extension type
The ReadableByteStreamController interface of the
Streams API
represents a controller for a
readable byte stream.
It allows control of the state and internal queue of a ReadableStream with
an underlying byte source, and enables efficient zero-copy transfer of data
from the underlying source to a consumer when the stream's internal queue is
empty.
An instance of this controller type is created if an underlyingSource
object with the property type="bytes" is passed as an argument to the
ReadableStream()
constructor.
The underlyingSource object may also define
start() and
pull() callback
functions.
These are called with the controller as a parameter, in order to set up the
underlying source, and request data when needed.
The underlying source uses the controller to supply data to the stream via
its byobRequest property or
enqueue() method.
byobRequest is a
ReadableStreamBYOBRequest object that represents a pending request from a
consumer to make a zero-copy transfer of data direct to a consumer.
byobRequest must be used to copy data if it exists (do not use enqueue()
in this case)!
If the underlying source needs to pass data to the stream and byobRequest
is null then the source can call
enqueue() to add the data to the
stream's internal queues.
Note that the byobRequest is
only created in "BYOB mode" when there is a request from a reader and the
stream's internal queue is empty.
"BYOB mode" is enabled when using a ReadableStreamBYOBReader (typically
constructed by calling ReadableStream.getReader with the argument { mode: 'byob' }).
It is also enabled when using a default reader and
autoAllocateChunkSize
is specified in the ReadableController()
constructor.
An underlying byte source can also use the controller to
close() the stream when all the
data has been sent and report errors from the underlying source using
error().
The controller's desiredSize
property is used to apply "backpressure", informing the underlying source of
the size of the internal queue (small values indicate that the queue is
filling up, hinting to the underlying source that it is be desirable to
pause or throttle the inflow).
Note that even though the controller is primarily used by the underlying byte source, there is no reason it cannot be stored used by other parts of the system to signal the stream.
API documentation sourced from MDN Web Docs.
- on
- Implemented types
- Available extensions
Properties
- byobRequest → ReadableStreamBYOBRequest?
- 
  The byobRequestread-only property of the ReadableByteStreamController interface returns the current BYOB request, ornullif there are no pending requests.no setter
- desiredSize → double?
- 
  The desiredSizeread-only property of the ReadableByteStreamController interface returns the number of bytes required to fill the stream's internal queue to its "desired size".no setter
- hashCode → int
- 
  The hash code for this object.
  no setterinherited
- isDefinedAndNotNull → bool
- 
      Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension no setter
- isNull → bool
- 
      Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension Whether this value corresponds to JavaScriptnull.no setter
- isTruthy → JSBoolean
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result of!!in JavaScript.thisno setter
- isUndefined → bool
- 
      Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension Whether this value corresponds to JavaScriptundefined.no setter
- isUndefinedOrNull → bool
- 
      Available on JSAny?, provided by the NullableUndefineableJSAnyExtension extension no setter
- not → JSBoolean
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result of!in JavaScript.thisno setter
- runtimeType → Type
- 
  A representation of the runtime type of the object.
  no setterinherited
Methods
- 
  add(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis+any
- 
  and(JSAny? any) → JSAny? 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis&&any
- 
  callMethod<R extends JSAny?> (JSAny method, [JSAny? arg1, JSAny? arg2, JSAny? arg3, JSAny? arg4]) → R 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Callsmethodon this JSObject with up to four arguments.
- 
  callMethodVarArgs<R extends JSAny?> (JSAny method, [List< JSAny?> ? arguments]) → R
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Callsmethodon this JSObject with a variable number ofarguments.
- 
  close() → void 
- 
  The close()method of the ReadableByteStreamController interface closes the associated stream.
- 
  dartify() → Object? 
- 
      Available on JSAny?, provided by the JSAnyUtilityExtension extension Converts a JavaScript JSON-like value to the Dart equivalent if possible.
- 
  delete(JSAny property) → JSBoolean 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Deletes the property with keypropertyfrom this JSObject.
- 
  divide(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis/any
- 
  enqueue(ArrayBufferView chunk) → void 
- 
  The enqueue()method of the ReadableByteStreamController interface enqueues a given chunk on the associated readable byte stream (the chunk is copied into the stream's internal queues).
- 
  equals(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis==any
- 
  error([JSAny? e]) → void 
- 
  The error()method of the ReadableByteStreamController interface causes any future interactions with the associated stream to error with the specified reason.
- 
  exponentiate(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis**any
- 
  getProperty<R extends JSAny?> (JSAny property) → R 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension The value of the property keypropertyof this JSObject.
- 
  greaterThan(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis>any
- 
  greaterThanOrEqualTo(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis>=any
- 
  has(String property) → bool 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Shorthand helper for hasProperty to check whether this JSObject contains the property keyproperty, but takes and returns a Dart value.
- 
  hasProperty(JSAny property) → JSBoolean 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Whether or not this JSObject contains the property keyproperty.
- 
  instanceof(JSFunction constructor) → bool 
- 
      Available on JSAny?, provided by the JSAnyUtilityExtension extension Whether thisJSAny?is aninstanceofconstructor.
- 
  instanceOfString(String constructorName) → bool 
- 
      Available on JSAny?, provided by the JSAnyUtilityExtension extension Whether thisJSAny?is aninstanceofthe constructor that is defined byconstructorName, which is looked up in the globalContext.
- 
  isA<T extends JSAny?> () → bool 
- 
      Available on JSAny?, provided by the JSAnyUtilityExtension extension Whether thisJSAny?is an instance of the JavaScript type that is declared byT.
- 
  lessThan(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis<any
- 
  lessThanOrEqualTo(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis<=any
- 
  modulo(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis%any
- 
  multiply(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis*any
- 
  noSuchMethod(Invocation invocation) → dynamic 
- 
  Invoked when a nonexistent method or property is accessed.
  inherited
- 
  notEquals(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis!=any
- 
  or(JSAny? any) → JSAny? 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis||any
- 
  setProperty(JSAny property, JSAny? value) → void 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Write thevalueof property keypropertyof this JSObject.
- 
  strictEquals(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis===any
- 
  strictNotEquals(JSAny? any) → JSBoolean 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis!==any
- 
  subtract(JSAny? any) → JSAny 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis-any
- 
  toString() → String 
- 
  A string representation of this object.
  inherited
- 
  typeofEquals(String typeString) → bool 
- 
      Available on JSAny?, provided by the JSAnyUtilityExtension extension Whether the result oftypeofon thisJSAny?istypeString.
- 
  unsignedRightShift(JSAny? any) → JSNumber 
- 
      Available on JSAny?, provided by the JSAnyOperatorExtension extension The result ofthis>>>any
Operators
- 
  operator ==(Object other) → bool 
- 
  The equality operator.
  inherited
- 
  operator [](String property) → JSAny? 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Shorthand helper for getProperty to get the value of the property keypropertyof this JSObject, but takes a Dart value.
- 
  operator []=(String property, JSAny? value) → void 
- 
      Available on JSObject, provided by the JSObjectUnsafeUtilExtension extension Shorthand helper for setProperty to write thevalueof the property keypropertyof this JSObject, but takes a Dart value.