Electron 如何判断邮件是来自主进程中的send还是sendSync?
在主进程中,ipcMain.on收到的消息来自Electron 如何判断邮件是来自主进程中的send还是sendSync?,electron,Electron,在主进程中,ipcMain.on收到的消息来自send或sendSync ipcMain.on('eventName',(event,arg)=>{ 如果(/*???*/){ event.sender.send('AsyncEventName',arg) }否则{ event.returnValue=arg } }) 您只需将一个值传入send即可进行区分: ipcRenderer.send("eventName", myArg, true); ipcRenderer.sendSync("eve
send
或sendSync
ipcMain.on('eventName',(event,arg)=>{
如果(/*???*/){
event.sender.send('AsyncEventName',arg)
}否则{
event.returnValue=arg
}
})
您只需将一个值传入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
}
});
ipcMain.on('eventName', (event, arg) => {
event.sender.send('AsyncEventName', arg)
});
ipcMain.on('eventNameSync', (event, arg) => {
event.returnValue = arg
});
另一个选项是使用两个不同的频道:
ipcRenderer.send("eventName", myArg);
ipcRenderer.sendSync("eventNameSync", myArg);
然后在主代码中:
ipcMain.on('eventName', (event, arg, isAsync) => {
if (isAsync) {
event.sender.send('AsyncEventName', arg)
} else {
event.returnValue = arg
}
});
ipcMain.on('eventName', (event, arg) => {
event.sender.send('AsyncEventName', arg)
});
ipcMain.on('eventNameSync', (event, arg) => {
event.returnValue = arg
});
就个人而言,我更喜欢第二个。您可以使用不同的事件通道进行异步和同步,如中所示。你有不允许你这样做的限制吗?如果是,如果你将它们添加到你的问题中,你会得到更好的答案。我想知道
ipcMain中事件
之间的区别。通过send
和sendSync
,或者它们是相同的?好吧,ipcMain
接受Electron.event
类型的事件(假设你使用的是TypeScript)不管它叫什么。它被描述了,看起来它们是一样的。它们只有一个sender
和一个returnValue
属性。