我有一个电子应用程序,我fork
一个子进程在不干扰主要过程的情况下完成一些后台工作。
var onlineSyncChild = require('child_process').fork('./includes/server/onlineSync');
我想将ipcMain
对象发送到子进程,以便它可以侦听应用程序消息并做出相应的响应。
这就是我所拥有的
const electron = require('electron');
const app = electron.app;
const ipcMain = electron.ipcMain;
...
var onlineSyncChild = require('child_process').fork('./includes/server/onlineSync');
onlineSyncChild.on('message', function (m) {
console.log('onlineSync says: ', m);
});
// send the ipcMain object into child
onlineSyncChild.send({type: 'set', ipc: ipcMain, db: DB});
但是,当我尝试在子进程中使用它时,
this.ipc.on('query-online-status', this.ipcQueryOnlineStatus);
我收到this.ipc.on
不是函数的错误。
我是否认为这是不可能的,而且我只能在子进程和父进程之间发送常规对象?
答案 0 :(得分:1)
传递给onlineSyncChild.send()
的消息在被发送到子进程之前将被序列化为JSON字符串,因此message
中的任何函数都将被省略。您可以在JSON.stringify()
的文档中阅读有关序列化过程中省略的内容的更多信息。