biubiubiu...

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

posted @ 2021-01-05 17:05  了恩  阅读(2059)  评论(0编辑  收藏  举报