电子ipcRenderer与ipcMain同步

时间:2018-04-23 17:14:24

标签: javascript ecmascript-6 electron ipc

我的问题是当我从渲染器进程调用ipcMain操作时 渲染器线程被卡住,直到ipcMain操作完成(sync而不是异步)

代码示例

Renderer.js

export const startCopy = data => {

  // Copy files tree to the drive
  ipcRenderer.send('copy-files', data);

  return new Promise((resolve, reject) => {

    ipcRenderer.on('copy-files-finished', (event, error) => {

      resolve(error);
    });
  });

}

Main.js

ipcMain.on('copy-files', (event, data) => {

  const error = copyFiles();

  console.log(error);

  event.sender.send('copy-files-finished', error);
});

非常感谢。

1 个答案:

答案 0 :(得分:1)

是的,当我处理电子问题时遇到同样的问题,所以我想建议你选择一个我认为最好的选择

  

在单独的窗口中执行耗时的任务或系统相关任务   独立于主窗口(渲染过程)它永远不会影响   主窗口(渲染过程)。

之后,将消息发送到主窗口(渲染过程)以通知和更新UI。