將 Uint8Array 轉換為 ReadableStream 的直接方法是使用 ReadableStream 建構函式,並將整個陣列作為一個數據塊入隊。對於較大的資料塊,這可能不理想,因為它實際上並沒有“流式傳輸”資料。
const arr = new Uint8Array(64);
const stream = new ReadableStream({
start(controller) {
controller.enqueue(arr);
controller.close();
},
});
要以較小的資料塊流式傳輸資料,首先從 Uint8Array 建立一個 Blob 例項。然後使用 Blob.stream() 方法建立一個 ReadableStream,該流以指定大小的資料塊流式傳輸資料。
const arr = new Uint8Array(64);
const blob = new Blob([arr]);
const stream = blob.stream();
資料塊大小可以透過向 .stream() 方法傳遞一個數字來設定。
const arr = new Uint8Array(64);
const blob = new Blob([arr]);
// set chunk size of 1024 bytes
const stream = blob.stream(1024);
有關使用 Bun 操作二進位制資料的完整文件,請參閱 文件 > API > 二進位制資料。