当前位置: 首页 > news >正文

[Electron]ipcMain.on和ipcMain.handle的区别

在Electron中的通信中,我们经常会用到ipcRender.invoke和ipvRender.send

接下来简要说明下这两个方法的区别

  1. ipcMain.on(channel, listener)

    • 这是 Electron 的主进程(main process)监听来自渲染进程(renderer process)的消息的方式。
    • 当渲染进程通过 ipcRenderer.send 或 ipcRenderer.sendSync 发送消息时,主进程可以使用 ipcMain.on 来监听并处理这些消息。
    • listener 是一个回调函数,当收到匹配 channel 的消息时,这个函数会被调用。
    • 这种方式是异步的,主进程不会等待渲染进程的响应。
  2. ipcMain.handle(channel, listener)

    • ipcMain.handle 是 Electron 5.0.0 之后引入的新特性。
    • 它允许主进程注册一个处理函数来响应来自渲染进程的同步消息请求。
    • 当渲染进程使用 ipcRenderer.invoke 发送一个同步消息请求时,主进程可以使用 ipcMain.handle 来处理这个请求,并返回一个响应。
    • listener 是一个处理函数,当收到匹配 channel 的同步消息请求时,这个函数会被调用。
    • 与 ipcMain.on 不同,ipcMain.handle 是同步的,主进程会等待渲染进程的响应。

总结

  • ipcMain.on 主要用于处理渲染进程发送的异步消息。
  • ipcMain.handle 主要用于处理渲染进程发送的同步消息请求,并返回响应。

相关文章:

  • 下载一些ROS的包的方式
  • Docker部署SimpleMindMap结合内网穿透实现公网访问本地思维导图
  • JDBC编程(数据库编程)
  • 数据库系统概念(第一周)
  • 数据结构 - 栈和队列
  • lua与C++粘合层框架
  • Clickhouse表引擎介绍
  • ARM单片机中程序在ROM空间和RAM空间的分布(分散加载文件,Scatter-Loading Description File)
  • Humanoid-Gym 开源人形机器人端到端强化学习训练框架!星动纪元联合清华大学、上海期智研究院发布!
  • 产品推荐 - 基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板
  • ORACLE基于归档号增量恢复
  • windows关闭copilot预览版
  • 分布式定时任务调度xxl-job
  • ElevenLabs用AI为Sora文生视频模型配音 ,景联文科技提供高质量真人音频数据集助力生成逼真音效
  • HTML—常用标签
  • 网络传输文件的问题
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS盒模型深入
  • ES6核心特性
  • EventListener原理
  • java第三方包学习之lombok
  • js递归,无限分级树形折叠菜单
  • Odoo domain写法及运用
  • PHP那些事儿
  • python大佬养成计划----difflib模块
  • text-decoration与color属性
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 记录:CentOS7.2配置LNMP环境记录
  • 解析带emoji和链接的聊天系统消息
  • 力扣(LeetCode)22
  • 前端性能优化--懒加载和预加载
  • 学习使用ExpressJS 4.0中的新Router
  • 再次简单明了总结flex布局,一看就懂...
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 【云吞铺子】性能抖动剖析(二)
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 关于Android全面屏虚拟导航栏的适配总结
  • 回归生活:清理微信公众号
  • (39)STM32——FLASH闪存
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (第二周)效能测试
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (一)WLAN定义和基本架构转
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET delegate 委托 、 Event 事件
  • .net 简单实现MD5
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET/C# 的字符串暂存池
  • .netcore如何运行环境安装到Linux服务器
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET面试题(二)