[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 主要用于处理渲染进程发送的同步消息请求,并返回响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值