问题描述
因此,显然,在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
的弃用推理中指出的那样,通常这可能是步枪,应谨慎使用。