ipcRenderer而不是远程

问题描述

因此,显然,在Electron中使用remote模块是一个不好的做法,他们正计划取消该模块。他们说应该使用ipcRenderer模块。

但是ipc是事件系统。

如果我需要在@R_502_6305@脚本中从主进程中获取某个变量,该怎么办?我无法收听给我该变量的ipc事件,因为它可能在脚本完成之后出现! 使用远程模块,当您调用remote.app.function()可以得到所需内容时,脚本将被阻塞,直到获得结果为止,就像使用任何普通函数一样。

解决方法

remote只不过是ipc的包装器。如果您可以在远程执行某项操作,则也应该可以通过ipcRenderer使用它。

您正在寻找的是sendSync https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendsyncchannel-args,它允许等待ipc返回消息返回。但是,正如remote的弃用推理中指出的那样,通常这可能是步枪,应谨慎使用。