Skip to content

في Bun، يمكن أن تقبل كائنات Response دالة مولد غير متزامنة كجسم لها. هذا يسمح لك بدفق البيانات إلى العميل عند توفرها، بدلاً من انتظار اكتمال الاستجابة بأكملها.

ts
Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response(
      // دالة مولد غير متزامنة
      async function* () {
        yield "مرحبًا، ";
        await Bun.sleep(100);
        yield "عالم!";

        // يمكنك أيضًا إرجاع TypedArray أو Buffer
        yield new Uint8Array(["\n".charCodeAt(0)]);
      },
      { headers: { "Content-Type": "text/plain" } },
    );
  },
});

يمكنك تمرير أي قابل للتكرار غير متزامن مباشرة إلى Response:

ts
Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response(
      {
        [Symbol.asyncIterator]: async function* () {
          yield "مرحبًا، ";
          await Bun.sleep(100);
          yield "عالم!";
        },
      },
      { headers: { "Content-Type": "text/plain" } },
    );
  },
});

Bun بواسطة www.bunjs.com.cn تحرير