首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个ipcMain命令调用ipcMain命令?

如何从另一个ipcMain命令调用ipcMain命令?
EN

Stack Overflow用户
提问于 2019-11-08 04:57:24
回答 2查看 1.5K关注 0票数 1

不幸的是,我对电子是全新的,为了使自己变得干燥,我需要从loadFolders内部启动makeFolderloadFolders将触发一个事件,让ipcRenderer加载我更新的文件夹名。

所有的在线示例都显示了从ipcMain发送到ipcRenderer的消息,但从来没有从一个后端函数发送到另一个后端函数,这可能吗?

代码语言:javascript
复制
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)
    }
  })
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-09 14:25:40

在电子中,您只有一个主进程(如服务器)和多个呈现程序进程(如浏览器中的选项卡)。

IPC代表进程间通信.但是在主进程中不需要IPC。例如,您可以使用常规函数调用。

但是,如果您需要从主进程到呈现程序进程“交谈”,反之亦然,或者在呈现程序进程之间,那么分别使用ipcMain()和ipcRender()。

票数 0
EN

Stack Overflow用户

发布于 2021-10-01 14:55:34

我不确定你是否应该这么做,正如其他人所指出的那样。话虽如此,你绝对可以!您可以从您的主进程发出一个事件,并在您的主进程上捕获它。

在你的主要过程中:

代码语言:javascript
复制
ipcMain.on('doSomething', ()=>{console.log('I did something!')});
ipcMain.emit('doSomething');

这将输出“我做了什么!”在你的控制台上。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58760613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档