問題現象:
前端通過 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為同步方法,渲染進程需要等待主進程返回,當主進程沒有返回內容時,前端出現卡死現象。
