Skip to content

L'approccio ingenuo per creare un ReadableStream da un Buffer è usare il costruttore ReadableStream e accodare l'intero array come un singolo chunk. Per un buffer grande, questo potrebbe essere indesiderabile poiché questo approccio non fa lo "streaming" dei dati in chunk più piccoli.

ts
const buf = Buffer.from("hello world");
const stream = new ReadableStream({
  start(controller) {
    controller.enqueue(buf);
    controller.close();
  },
});

Per fare lo streaming dei dati in chunk più piccoli, prima crea un'istanza Blob dal Buffer. Poi usa il metodo Blob.stream() per creare un ReadableStream che fa lo streaming dei dati in chunk di una dimensione specificata.

ts
const buf = Buffer.from("hello world");
const blob = new Blob([buf]);
const stream = blob.stream();

La dimensione del chunk può essere impostata passando un numero al metodo .stream().

ts
const buf = Buffer.from("hello world");
const blob = new Blob([buf]);

// imposta la dimensione del chunk di 1024 byte
const stream = blob.stream(1024);

Vedi Documentazione > API > Dati Binari per la documentazione completa sulla manipolazione dei dati binari con Bun.

Bun a cura di www.bunjs.com.cn