电子中`event.sender.send`和`webContents.send`之间有什么区别?

时间:2017-07-17 03:32:37

标签: 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
});

1 个答案:

答案 0 :(得分:1)

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

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

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