ipcMain¶
从主进程异步通信到渲染进程。
进程:Main
ipcMain 模块是一个 Event Emitter。在主进程中使用时,它处理从渲染进程(网页)发送的异步和同步消息。从渲染进程发送的消息会在此模块上发出。
有关使用示例,请参阅 IPC tutorial。
发送消息¶
也可以从主进程向渲染进程发送消息,更多信息请参阅 webContents.send。
- 发送消息时,事件名称即为
channel。 - 要回复同步消息,需要设置
event.returnValue。 - 要向发送方回发异步消息,可以使用
event.reply(...)。此辅助方法会自动处理来自非主框架(例如 iframe)的消息,而event.sender.send(...)始终发送到主框架。
方法¶
ipcMain 模块具有以下用于监听事件的方法:
ipcMain.on(channel, listener)¶
channel字符串listener函数eventIpcMainEvent...argsany[]
监听 channel,当有新消息到达时,会以 listener(event, args...) 的形式调用 listener。
ipcMain.off(channel, listener)¶
channel字符串listener函数\<Promise\<any> | any>eventIpcMainInvokeEvent...argsany[]
为可 invoke 的 IPC 添加处理程序。每当渲染进程调用 ipcRenderer.invoke(channel, ...args) 时,都会调用此处理程序。
如果 listener 返回 Promise,则 Promise 的最终结果将作为回复返回给远程调用方。否则,监听器的返回值将用作回复的值。
```js title='Main Process' @ts-type={somePromise:(...args:unknown[])=>Promise
作为第一个参数传递给处理程序的 event 与传递给常规事件监听器的 event 相同。它包含有关哪个 WebContents 是 invoke 请求来源的信息。
在主进程中通过 handle 抛出的错误不会透明传递,因为它们会被序列化,并且只会将原始错误的 message 属性提供给渲染进程。详情请参阅 #24427。
ipcMain.handleOnce(channel, listener)¶
channel字符串
如果存在,则移除 channel 的任何处理程序。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron