El enfoque ingenuo para crear un ReadableStream desde un Uint8Array es usar el constructor ReadableStream y encolar todo el array como un único fragmento. Para fragmentos más grandes, esto puede ser indeseable ya que en realidad no está "transmitiendo" los datos.
ts
const arr = new Uint8Array(64);
const stream = new ReadableStream({
start(controller) {
controller.enqueue(arr);
controller.close();
},
});Para transmitir los datos en fragmentos más pequeños, primero crea una instancia de Blob desde el Uint8Array. Luego usa el método Blob.stream() para crear un ReadableStream que transmite los datos en fragmentos de un tamaño especificado.
ts
const arr = new Uint8Array(64);
const blob = new Blob([arr]);
const stream = blob.stream();El tamaño del fragmento se puede establecer pasando un número al método .stream().
ts
const arr = new Uint8Array(64);
const blob = new Blob([arr]);
// establecer tamaño de fragmento de 1024 bytes
const stream = blob.stream(1024);Consulta Documentación > API > Datos Binarios para documentación completa sobre la manipulación de datos binarios con Bun.