在主进程中,ipcMain.on从send
或sendSync
收到消息了吗?
ipcMain.on('eventName', (event, arg) => {
if ( /* ??? */ ) {
event.sender.send('AsyncEventName', arg)
} else {
event.returnValue = arg
}
})
答案 0 :(得分:1)
您可以将值传递到send
中以进行区分:
ipcRenderer.send("eventName", myArg, true);
ipcRenderer.sendSync("eventName", myArg, false);
然后在您的主要代码中:
ipcMain.on('eventName', (event, arg, isAsync) => {
if (isAsync) {
event.sender.send('AsyncEventName', arg)
} else {
event.returnValue = arg
}
});
另一种选择是使用两个不同的渠道:
ipcRenderer.send("eventName", myArg);
ipcRenderer.sendSync("eventNameSync", myArg);
然后在您的主要代码中:
ipcMain.on('eventName', (event, arg) => {
event.sender.send('AsyncEventName', arg)
});
ipcMain.on('eventNameSync', (event, arg) => {
event.returnValue = arg
});
我个人比较喜欢第二个。