电子中的"event.sender.send"和"webContent.send"



如此代码片段所示,这两种方法都可以将事件发送到渲染进程。我想知道代码中的 A 行和 B 行有什么区别?

ipcMain.on('async', (event, arg) => {          
console.log(arg);      
event.sender.send('async-reply', 2); // line A
});

ipcMain.on('sync', (event, arg) => {          
console.log(arg);
event.returnValue = 4;
mainWindow.webContents.send('ping', 5); //line B
});
  • mainWindow.webContents.send: 向mainWindow发送事件
  • event.sender.send:将事件发送到发送它的窗口。因此,如果您只使用一个窗口,那么它们实际上是相同的

我会使用event.sender.send而不是mainWindow.webContents.send除非您想将事件发送到特定窗口。

event.returnValue = data使其同步,因此您可以使用var data = ipcRenderer.sendSync('get-data');

最新更新