electron 主进程的不同js之间如何进行通讯?
-
有没有类似
ipcMain
和ipcRenderer
这种通讯方式,因为主进程的逻辑比较复杂,写在一个文件里面是不合适的,所以拆分了好几个模块,现在又有一个问题,这几个模块之间有些时候需要相互进行通讯,不知道要怎么实现 -
在主进程的话,可以定义一个继承
Event Emitter
的通讯类,通过在不同js里面引入该类,实现通讯机制。参考代码
通讯类 Event
import { EventEmitter } from 'events' export default new class Event extends EventEmitter { // 首次使用构造器实例 constructor() { super() if (!Event.instance) { Event.instance = this } return Event.instance } }
测试类test1.js
import event from './event' export default class Test1 { constructor() { // 监听事件 event.on('test2-msg', (data) => { console.log(data, '来自test2') }) } }
测试类test2.js
import event from './event' export default class Test2 { constructor() { event.emit('test2-msg', '我是test2发来的消息') } }
测试
import Test1 from './test1' import Test2 from './test2' new Test1() new Test2()
控制台返回结果
我是test2发来的消息 来自test2
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏