In Bun können Response Objekte eine Async-Generator-Funktion als Body akzeptieren. Dies ermöglicht es Ihnen, Daten an den Client zu streamen, sobald sie verfügbar sind, anstatt zu warten, bis die gesamte Response bereit ist.
ts
Bun.serve({
port: 3000,
fetch(req) {
return new Response(
// Eine Async-Generator-Funktion
async function* () {
yield "Hello, ";
await Bun.sleep(100);
yield "world!";
// Sie können auch ein TypedArray oder Buffer yielden
yield new Uint8Array(["\n".charCodeAt(0)]);
},
{ headers: { "Content-Type": "text/plain" } },
);
},
});Sie können jedes asynchrone Iterable direkt an Response übergeben:
ts
Bun.serve({
port: 3000,
fetch(req) {
return new Response(
{
[Symbol.asyncIterator]: async function* () {
yield "Hello, ";
await Bun.sleep(100);
yield "world!";
},
},
{ headers: { "Content-Type": "text/plain" } },
);
},
});