ReadableByteStreamController: phương thức close()

Baseline 2026
Newly available

Since March 2026, 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.

Phương thức close() của giao diện ReadableByteStreamController đóng stream liên quan.

Phương thức này có thể được nguồn bên dưới gọi khi nguồn dữ liệu của nó đã cạn kiệt/hoàn thành.

Note: Reader vẫn có thể đọc bất kỳ chunk nào đã được xếp hàng từ stream, nhưng khi đã đọc hết, stream sẽ trở thành trạng thái đóng. Tuy nhiên, nếu có byobRequest chưa hoàn chỉnh khi close() được gọi, stream sẽ gặp lỗi.

Cú pháp

js
close()

Tham số

Không có.

Giá trị trả về

Không có (undefined).

Ngoại lệ

TypeError

Được ném ra nếu đối tượng nguồn không phải là ReadableByteStreamController, nó đã được đóng, hoặc stream không thể đọc vì lý do nào đó.

Ví dụ

Ví dụ trong Sử dụng readable byte streams > Tạo readable socket push byte stream cho thấy cách chúng ta có thể đóng stream khi không còn dữ liệu.

Mã liên quan được tái tạo dưới đây. Điều này dựa trên phương thức readInto() giả định chỉ trả về 0 byte khi không còn dữ liệu.

js
bytesRead = socket.readInto(v.buffer, v.byteOffset, v.byteLength);
if (bytesRead === 0) {
  controller.close();
}

Sau khi gọi close, stream sẽ được đóng và bất kỳ consumer nào sẽ được thông báo. Ví dụ nếu dùng ReadableStreamBYOBReader, bất kỳ yêu cầu read() nào sẽ giải quyết với done: true và promise từ ReadableStreamBYOBReader.closed cũng sẽ được giải quyết.

Thông số kỹ thuật

Specification
Streams
# ref-for-rbs-controller-close①

Tương thích trình duyệt

Xem thêm