我的父行程將子行程分叉如下:
child = new fork('child.js');
現在在我的父行程中,我有一個包含陣列的變數。我想將此陣列傳遞給子行程,因此我嘗試將該變數作為訊息發送給子行程:
//in parent.js
var jData = ['pro1', 'pro2', 'pro3']
child.send({'koota': jData})
//
//in child.js
process.on('koota', (jData) => {
console.log(jData ' from child!')
})
//
但是,這不起作用。有什么方法可以將陣列傳遞給孩子以便我可以使用它的內容?
uj5u.com熱心網友回復:
使用process.on('message', () => {})來接收郵件已發送用child.send({})。
改編自鏈接的檔案頁面(已縮短,完整示例請參見原文):
const { fork } = require('child_process');
const child = fork('child.js'); // no need for 'new'
const jData = ['pro1', 'pro2', 'pro3'];
child.send({'koota': jData});
child.js:
process.on('message', (msg) => {
if (msg.koota) {
console.log(msg.koota, 'from child!');
}
});
您目前正在使用process.on(<a custom name, not "message">). 您可以簡單地檢查您在事件處理程式中收到的訊息的“型別”:
process.on('message', (msg) => {
if (msg.koota) {
// ...
}
})
發送類似的訊息{type: 'koota', data: {}}可能會更好看 ( if(msg.type === 'koota') {...})。
uj5u.com熱心網友回復:
我想你可以在這里找到你需要的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/378993.html
