Verwenden Sie Bun.spawn(), um einen Kindprozess zu spawnen. Beim Spawnen eines zweiten bun-Prozesses können Sie einen direkten Inter-Prozess-Kommunikationskanal (IPC) zwischen den beiden Prozessen öffnen.
NOTE
Diese API ist nur mit anderen `bun`-Prozessen kompatibel. Verwenden Sie `process.execPath`, um einen Pfad zur aktuell laufenden `bun`-ausführbaren Datei zu erhalten.const child = Bun.spawn(["bun", "child.ts"], {
ipc(message) {
/**
* Die vom Unterprozess empfangene Nachricht
**/
},
});Der Elternprozess kann Nachrichten an den Unterprozess senden, indem er die .send()-Methode auf der zurückgegebenen Subprocess-Instanz verwendet. Eine Referenz auf den sendenden Unterprozess ist auch als zweites Argument im ipc-Handler verfügbar.
const childProc = Bun.spawn(["bun", "child.ts"], {
ipc(message, childProc) {
/**
* Die vom Unterprozess empfangene Nachricht
**/
childProc.send("Antwort an Kind");
},
});
childProc.send("Ich bin dein Vater"); // Der Elternprozess kann auch Nachrichten an das Kind sendenIn der Zwischenzeit kann der Kindprozess Nachrichten an seinen Elternprozess mit process.send() senden und Nachrichten mit process.on("message") empfangen. Dies ist dieselbe API, die für child_process.fork() in Node.js verwendet wird.
process.send("Hallo vom Kind als String");
process.send({ message: "Hallo vom Kind als Objekt" });
process.on("message", message => {
// Nachricht vom Elternprozess ausgeben
console.log(message);
});Alle Nachrichten werden mit der JSC serialize-API serialisiert, die denselben Satz von übertragbaren Typen unterstützt, die von postMessage und structuredClone unterstützt werden, einschließlich Strings, typisierte Arrays, Streams und Objekte.
// einen String senden
process.send("Hallo vom Kind als String");
// ein Objekt senden
process.send({ message: "Hallo vom Kind als Objekt" });Siehe Docs > API > Child processes für vollständige Dokumentation.