ipcRenderer
An object that carries handle
, invoke
and remove
methods to manage the asynchronous communication from the renderer to main process.
ipcRenderer.handle[channel / handler name]
Register the IPC handler for the given channel. The handler will be called whenever the ipcMain.invoke
method is called with the same channel.
It can be simply used as the following example:
const { handle } = window.api
handle.getPing()
Where getPing
is the name of the channel (handler) registered in the createInterprocess
or createIpcSlice
functions.
Also, you can pass a callback function to handle the request from the main process if you need to do something before sending the response:
const { handle, remove, invoke } = window.api
handle.getPing(async (_, { getPing, data }) => {
// call the registered handler if needed
const response = await getPing(_, data)
await invoke.getPong('pong')
remove.getPing()
return 'The getPong ipc was removed'
})
ipcRenderer.invoke[channel / handler name]
Send a message to the main process and wait for the response if needed:
const { invoke } = window.api
const response = await invoke.getPong('pong')
console.log(response)
ipcRenderer.remove[channel / handler name]
Remove the listener from the renderer process:
const { remove } = window.api
remove.getPing()