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为同步方法,渲染进程需要等待主进程返回,当主进程没有返回内容时,前端出现卡死现象。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM