Edge Developer Platform
  • Edge Functions
    • Overview
    • Getting Started
    • Operation Guide
      • Function Management
      • Web Debugging
      • Function Trigger
      • Environment Variable
      • Code Replica
    • Runtime APIs
      • addEventListener
      • Cache
      • Cookies
      • Encoding
      • Fetch
      • FetchEvent
      • Headers
      • Request
      • Response
      • Streams
        • ReadableStream
        • ReadableStreamBYOBReader
        • ReadableStreamDefaultReader
        • TransformStream
        • WritableStream
        • WritableStreamDefaultWriter
      • Web Crypto
      • Web standards
      • Images
        • ImageProperties
    • Sample Functions
      • Example Overview
      • Obtaining Client URL Information
      • Customization Based on Client Geo Location
      • Obtaining Client Geo Location Information
      • Batch Redirect
      • URL rewrite based on regular expressions
      • Returning an HTML Page
      • Returning a JSON Object
      • Fetch Remote Resources
      • Authenticating a Request Header
      • Modifying a Response Header
      • Performing an A/B Test
      • Setting Cookies
      • Performing Redirect Based on the Request Location
      • Using the Cache API
      • Caching POST Requests
      • Responding in Streaming Mode
      • Merging Resources and Responding in Streaming Mode
      • Protecting Data from Tampering
      • Rewriting a m3u8 File and Configuring Authentication
      • Adaptive Image Resize
      • Image Adaptive WebP
      • Customize Referer restriction rules
      • Remote Authentication
      • HMAC Digital Signature
      • Naming a Downloaded File
      • Obtaining Client IP Address
      • Complex origin-pull URL rewriting
      • Web Bot Auth
    • Practical Tutorial
      • Overview
      • Origin retrieval based on user IP/geographic location
        • EdgeOne Implementation of Session Persistence Based on Client IP Addresses
        • EdgeOne Implementation of Origin-Pull Based on Client's Geo Location
      • APK dynamic packaging
        • EdgeOne enables dynamic packaging of Android APKs.
          • Feature Overview
          • Step 1: Preprocess the Android APK Parent Package
          • Step 2: Write the Channel Information into the APK Package with EdgeOne Edge Functions
      • Canary Release and Region-specific Execution
      • Adaptive Image Format Conversion via Edge Functions
      • Two Ways to Implement CDN Origin-pull Via Edge Function: Fetch and Passthrough
  • KV Storage
    • Overview
    • Operation Guide
  • Edge reasoning
    • Edge Inference Overview
    • Quick Guide

ReadableStreamBYOBReader

The ReadableStreamBYOBReader API defines a reader for a readable stream. It is designed based on the standard Web API ReadableStreamBYOBReader. BYOB is an abbreviation of bring your own buffer. A ReadableStreamBYOBReader object allows to read data from streams and write the read data to the buffer, thereby reducing replicas.
Note:
A ReadableStreamBYOBReader object cannot be constructed directly. You can use the ReadableStream.getReader method to construct a ReadableStreamBYOBReader object.

Overview

// Use TransformStream to construct a ReadableStream object.
const { readable } = new TransformStream();

// Use the ReadableStream object to obtain the reader.
const reader = readable.getReader({
mode: 'byob',
});

Attributes

// readable.locked
readonly locked: boolean;
The locked attribute returns a Promise object. If the stream is closed, the status of the Promise object is fulfilled. If an exception occurs on the stream or the lock on the reader is released, the status of the Promise object is rejected.

Methods

read

reader.read(bufferView: ArrayBufferView): Promise<{value: ArrayBufferView, done: boolean}>;
The read() method reads data from the stream and writes the read data to the bufferView on the buffer.
Note:
You cannot initiate the next stream reading operation until the current stream reading operation ends.

Returned values

The reader.read method returns a Promise object that contains the read data and the reading status.
If a chunk is available, the Promise object is in the fulfilled status and contains an object in the { value: theChunk, done: false } format.
If the stream is closed, the status of the Promise object is switched to fulfilled, and an object in the { value: theChunk, done: true } format is contained.
If an exception occurs on the stream, the Promise object is in the rejected status, and the relevant error information is included.

cancel

reader.cancel(reason?: string): Promise<string>;
The cancel() method closes the stream and ends the reading operation.

releaseLock

reader.releaseLock(): void;
The releaseLock() method cancels the association with the stream and releases the lock on the stream.

References