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