西南IT社区
    • 注册
    • 登录
    • 搜索
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目

    electron 主进程的不同js之间如何进行通讯?

    技术答疑
    进程通讯 electron
    2
    2
    253
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • biaoya321
      biaoya321 最后由 编辑

      有没有类似 ipcMain 和 ipcRenderer 这种通讯方式,因为主进程的逻辑比较复杂,写在一个文件里面是不合适的,所以拆分了好几个模块,现在又有一个问题,这几个模块之间有些时候需要相互进行通讯,不知道要怎么实现

      1 条回复 最后回复 回复 引用 0
      • ivorzk
        ivorzk 最后由 ivorzk 编辑

        在主进程的话,可以定义一个继承 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
        
        
        1 条回复 最后回复 回复 引用 0
        • First post
          Last post
        使用HTML构建办公软件 使用HTML构建办公软件 使用HTML构建办公软件
        成
        Y
        洋
        书
        Y
        D
        U
        Y
        娇
        玩
        1
        光
        A
        庆
        小
        U
        Y
        L
        I
        Z
        I
        Y
        C
        Z

        西南地区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
        西藏
        社群
        昆明网页设计交流吧
        友情链接
        • Funtask
        • Funtask 社区
        • SUWIS
        ©2019-2021 滇ICP备20006698号