我有一个 Electron 应用程序,我在其中 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
不是函数。
我是否正确地假设这是不可能的,并且我所能做的只是在子进程和父进程之间发送常规对象?
最佳答案
您传递给 onlineSyncChild.send()
的消息在发送到子进程之前将被序列化为 JSON 字符串,因此 message
中的任何函数都将被省略。您可以在 JSON.stringify()
的文档中阅读有关序列化过程中省略的内容的更多信息。 .
关于javascript - 在子进程和父进程之间共享 ipc 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469187/