不幸的是,我对电子是全新的,为了使自己变得干燥,我需要从loadFolders内部启动makeFolder,loadFolders将触发一个事件,让ipcRenderer加载我更新的文件夹名。
所有的在线示例都显示了从ipcMain发送到ipcRenderer的消息,但从来没有从一个后端函数发送到另一个后端函数,这可能吗?
ipcMain.on('loadFolders', (e, args) => {
// ...
// does some stuff to read folder names from the file system
// ...
// sends folder list to the view
mainWindow.webContents.send('folderItems', items)
})
ipcMain.on('makeFolder', (e, args) => {
return new Promise((resolve, reject) => {
try {
// ...
// creates a folder from args
// ** need to call the loadFolders method here in order to read
// updated list from the filesystem **
} catch (err) {
reject(err)
}
})
})发布于 2019-11-09 14:25:40
在电子中,您只有一个主进程(如服务器)和多个呈现程序进程(如浏览器中的选项卡)。
IPC代表进程间通信.但是在主进程中不需要IPC。例如,您可以使用常规函数调用。
但是,如果您需要从主进程到呈现程序进程“交谈”,反之亦然,或者在呈现程序进程之间,那么分别使用ipcMain()和ipcRender()。
发布于 2021-10-01 14:55:34
我不确定你是否应该这么做,正如其他人所指出的那样。话虽如此,你绝对可以!您可以从您的主进程发出一个事件,并在您的主进程上捕获它。
在你的主要过程中:
ipcMain.on('doSomething', ()=>{console.log('I did something!')});
ipcMain.emit('doSomething');这将输出“我做了什么!”在你的控制台上。
https://stackoverflow.com/questions/58760613
复制相似问题