首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Electron中实现进程同步?

问如何在Electron中实现进程同步?
EN

Stack Overflow用户
提问于 2017-05-03 11:40:59
回答 1查看 513关注 0票数 0

我是个电子新手,即将建立一个迷你application.In电子,我不知道这种情况:当主进程从另一个渲染进程获得信号时,主进程需要发送消息到渲染进程A。我试过了:

代码语言:javascript
复制
ipc.on('signalA', function() {
    ipc.sendSync('signalB');

});

但事实证明,sendSync不是一个函数。

EN

回答 1

Stack Overflow用户

发布于 2017-05-03 12:47:11

在electron中,您可以在主进程(main.js)和渲染器进程(浏览器窗口)之间进行通信。

main.js:

代码语言:javascript
复制
const {app, BrowserWindow} = require('electron');
const path = require('path');
const url = require('url');

let win = new BrowserWindow({width: 400, height: 275});

win.loadURL(url.format({
   pathname: path.join(__dirname, 'index.html'),
   protocol: 'file:',
   slashes: true
}));

win.webContents.on('did-finish-load', () => {
   win.webContents.send('asynchronous-message', 'ping');
});

ipcMain.on('synchronous-reply', (event, arg) => {
  console.log(arg)  // prints "ping1"
  event.returnValue = 'pong'
});

ipcMain.on('asynchronous-message', (event, arg) => {
   console.log(arg)  // prints "ping2"
   event.sender.send('asynchronous-reply', 'pong2');
});

在网页(index.html)中:

代码语言:javascript
复制
<script>
  const {ipcRenderer} = require('electron');
  ipcRenderer.on('asynchronous-message', (event, arg) => {
     console.log(arg);  // prints "ping"
     const res = ipcRenderer.sendSync('synchronous-reply', 'ping1');
     console.log(res);  // prints "pong"
  });

  ipcRenderer.send('asynchronous-message', 'ping2')
  ipcRenderer.on('asynchronous-reply', (event, arg) => {
    console.log(arg) // prints "pong2"
  });
</script>

你可以在这里阅读文档:ipc-main.md

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

https://stackoverflow.com/questions/43750654

复制
相关文章

相似问题

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