电子中的“event.sender.send”和“webContents.send”有什么区别?

Bla*_*ake 5 node.js electron

正如此代码片段所示,这两种方法都可以将事件发送到渲染进程。我想知道代码中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
});
Run Code Online (Sandbox Code Playgroud)

小智 5

  • mainWindow.webContents.send:发送一个事件到mainWindow
  • event.sender.send:将事件发送到发送该事件的窗口。因此,如果您只使用一个窗口,那么它们实际上是相同的

除非您想将事件发送到特定窗口,否则我会使用event.sender.sendover 。mainWindow.webContents.send

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