استخدم Bun.spawn() لـ spawn عملية ابنة. عند spawn عملية bun ثانية، يمكنك فتح قناة اتصال مباشرة بين العمليات (IPC) بين العمليتين.
NOTE
هذه الواجهة متوافقة فقط مع عمليات `bun` الأخرى. استخدم `process.execPath` للحصول على مسار التنفيذ `bun` قيد التشغيل حاليًا.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* الرسالة المستلمة من العملية الفرعية
**/
},
});يمكن للعملية الأصلية إرسال رسائل إلى العملية الفرعية باستخدام طريقة .send() على مثيل Subprocess المعاد. يتوفر أيضًا مرجع إلى العملية الفرعية المرسلة كوسيطة ثانية في معالج ipc.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* الرسالة المستلمة من العملية الفرعية
**/
childProc.send("الرد على الابن");
},
});
childProc.send("أنا والدك"); // يمكن للأصل إرسال رسائل إلى الابن أيضًافي هذه الأثناء، يمكن للعملية الفرعية إرسال رسائل إلى أصلها باستخدام process.send() واستقبال الرسائل باستخدام process.on("message"). هذه هي نفس الواجهة المستخدمة لـ child_process.fork() في Node.js.
process.send("مرحبًا من الابن كسلسلة");
process.send({ message: "مرحبًا من الابن ككائن" });
process.on("message", message => {
// طباعة الرسالة من الأصل
console.log(message);
});يتم تحويل جميع الرسائل باستخدام واجهة JSC serialize، والتي تسمح بنفس مجموعة الأنواع القابلة للنقل المدعومة من postMessage و structuredClone، بما في ذلك السلاسل ومصفوفات typed والتيارات والكائنات.
// إرسال سلسلة
process.send("مرحبًا من الابن كسلسلة");
// إرسال كائن
process.send({ message: "مرحبًا من الابن ككائن" });راجع الوثائق > API > عمليات الابنة للحصول على الوثائق الكاملة.