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