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
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.
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①> |