electron 调用文件写入方法(fs.writeFile)后,前端卡死
问题现象:
前端通过 ipcRenderer.sendSync('updateData', data) 调用主线程文件写入方法后,前端卡死
// 渲染进程逻辑 ipcRenderer.sendSync('updateData', data)
// 主进程逻辑 ipcMain.on('updateData', (event, arg) => { fs.writeFile( path.join(__dirname, './src/config.json'), JSON.stringify(arg), 'utf8', (err) => { event.sender.send('data-reply', arg); } ); });
解决方法:
将sendSync方法改为send方法
ipcRenderer.send('updateData', data);
原因分析:
sendSync为同步方法,渲染进程需要等待主进程返回,当主进程没有返回内容时,前端出现卡死现象。