ipcMain
Se comunica de forma asincrónica desde el proceso principal a los procesos de renderizado.
Proceso: principal
El módulo ipcMain es un Event Emitter. Cuando se utiliza en el proceso principal, maneja mensajes asincrónicos y sincrónicos enviados desde el proceso de renderizado (página web). Los mensajes enviados desde el renderizador serán emitidos a este módulo.
For usage examples, check out the IPC tutorial.
Sending messages
It is also possible to send messages from the main process to the renderer process, see webContents.send for more information.
- Cuando se envía un mensaje, el nombre del evento es el
channel. - Para responder a un mensaje sincrónico, es necesario establecer
event.returnValue. - Para enviar un mensaje asíncrono de vuelta al emisor, puede usar
event.reply(...). Este método de ayuda automáticamente va a manejar los mensajes entrantes desde frames que no son el frame principal (ejemplo iframes) mientras queevent.sender.send(...)siempre enviará al frame principal.
Métodos
The ipcMain module has the following methods to listen for events:
ipcMain.on(channel, listener)
channelcadenalistenerFuncióneventIpcMainEvent...argsany[]
Escucha al channel. Cuando llega un nuevo mensaje listener es llamado con listener(event, args...).
ipcMain.off(channel, listener)
channelcadenalistenerFuncióneventIpcMainEvent...argsany[]
Elimina el listener especificado del arreglo listener para el channel especificado.
ipcMain.once(channel, listener)
channelcadenalistenerFuncióneventIpcMainEvent...argsany[]
Adds a one time listener function for the event. This listener is invoked only the next time a message is sent to channel, after which it is removed.
ipcMain.addListener(channel, listener)
channelcadenalistenerFuncióneventIpcMainEvent...argsany[]
Alias for ipcMain.on.
ipcMain.removeListener(channel, listener)
channelcadenalistenerFunción...argsany[]
Alias for ipcMain.off.
ipcMain.removeAllListeners([channel])
channelcadena (opcional)
Removes all listeners from the specified channel. Removes all listeners from all channels if no channel is specified.
ipcMain.handle(channel, listener)
channelcadenalistenerFunction<Promise<any> | any>eventIpcMainInvokeEvent...argsany[]
Adds a handler for an invokeable IPC. This handler will be called whenever a renderer calls ipcRenderer.invoke(channel, ...args).
Si listener devuelve una Promise, el eventual resultado de la promise será devuelto como una respuesta al controlador remoto. De lo contrario, el valor de retorno del listener será usado como el valor de la respuesta.
ipcMain.handle('my-invokable-ipc', async (event, ...args) => {
const result = await somePromise(...args)
return result
})
async () => {
const result = await ipcRenderer.invoke('my-invokable-ipc', arg1, arg2)
// ...
}
El event que es pasado como primer argumento al handler es el mismo que es pasado a un event listener normal. Incluye información sobre cual WebContents es el origen de la solicitud invocada.
Los errores lanzados a través de handle en el main process no son transparentes, ya que se serializan y solo la propiedad message del error original es proveído al renderer process. Por favor, consulte #24427 para más detalles.
ipcMain.handleOnce(channel, listener)
channelcadenalistenerFunction<Promise<any> | any>eventIpcMainInvokeEvent...argsany[]
Maneja un solo invokeable mensaje IPC, luego elimina el listener. See ipcMain.handle(channel, listener).
ipcMain.removeHandler(channel)
channelcadena
Elimina cualquier controlador para channel, si hay.