electron 通信模式
electron 通信模式
vkrainelectron 通信模式
- send/on 模型:
ipcMain.on
: 这个方法用于监听来自渲染进程的消息。当渲染进程通过ipcRenderer.send
发送特定的channel
消息时,这个方法会被触发。- 在回调函数中,首先使用
findFn
函数根据channel
查找相应的处理函数。 - 然后调用这个处理函数,并传递参数
params
和event
。这个处理函数是异步的,使用await
等待其结果。 - 完成后,使用
event.returnValue
设置返回值,并通过event.reply
发送回应到渲染进程。 - 如果过程中出现错误,会捕获异常并记录日志。注释掉的代码显示,原本还可以通过
event.returnValue
或event.reply
发送错误信息回渲染进程。
- invoke/handle 模型:
ipcMain.handle
: 这个方法用于设置一个处理函数,当渲染进程通过ipcRenderer.invoke
调用特定的channel
时,这个方法会被触发。- 它的工作流程与
send/on
类似,但不同之处在于invoke/handle
是基于Promise的,适用于异步操作。渲染进程可以等待invoke
的结果。 - 当处理函数执行完成后,其返回值会自动作为Promise的结果返回给调用方(渲染进程)。
- 如果处理过程中抛出异常,同样会被捕获并记录,异常信息作为Promise的拒绝(reject)结果返回。