Ahm*_*ksu 3 html javascript ipc electron
嗨,我正在从主进程请求两个结果,但是当我单击按钮时,应用程序一直冻结。甚至 devtools 也不工作。
ipcMain.on('fmail', (event, arg) => {
var fmaile = even
var fmaila = arg
ipcMain.on('fpass', (event, arg) => {
var fpasse = event
var fpassa = arg
console.log(fpassa)
console.log(fmaila)
fmaile.returnValue = "info"
fpasse.returnValue = "info"
})
})
Run Code Online (Sandbox Code Playgroud)
var datamail = ipcRenderer.sendSync('fmail', "fmail");
var datapass = ipcRenderer.sendSync('fpass', "fpass");
console.log(datamail)
console.log(datapass)
Run Code Online (Sandbox Code Playgroud)
感谢帮助。
该文档是在这一个非常清楚:
发送同步消息将阻塞整个渲染器进程,除非您知道自己在做什么,否则永远不要使用它。
由于您没有在fmail回调中提供返回值,难怪它会阻止您的应用程序。
另外,我猜您想分别注册两个侦听器。您目前拥有的是“每次回拨‘fmail’时将监听器添加到‘fpass’”
你的代码应该看起来像这样(但不能确切地告诉你)
ipcMain.on('fmail', (event, arg) => {
console.log(arg)
event.returnValue = "info"
})
ipcMain.on('fpass', (event, arg) => {
console.log(arg)
event.returnValue = "info"
})
console.log(
ipcRenderer.sendSync('fmail', "fmail"),
ipcRenderer.sendSync('fpass', "fpass")
)
Run Code Online (Sandbox Code Playgroud)