[英]Electron - fs.readdir callback sometimes doesn't execute on reload
在我重新加載包含該腳本的 window 后,大約 30% 的時間我的 electron 應用程序不執行 fs.readdir 回調。 當我使用electron.
,這個問題永遠不會發生,它只會在我重新加載 window 后才會發生。
我嘗試在執行 fs.readdir 之前添加 5 秒的 setTimeout,但這並沒有改變任何東西。 此外,在第一次運行 fs.readdir 后,所有正在進行的 fs.readdir 回調永遠不會執行,除非之后立即執行,或者之前從未重新加載過 window。
任何人都知道為什么會發生這種情況和解決方案?
主窗口.js:
const fs = require('fs')
// read all files in "images" directory
function readDirectory(){
fs.readdir('images', (e, files) => {
// On error, show and return error
if(e) return console.error(e);
console.log(files)
});
}
readDirectory()
主.js:
const electron = require('electron')
const path = require('path')
const {app, BrowserWindow, Menu} = electron
process.env.NODE_ENV = 'development'
let mainWindow
let mainMenu
function createMainWindow(){
// Create mainWindow
mainWindow = new BrowserWindow({
icon:'icon.png',
webPreferences:{
nodeIntegration:true,
fullscreen: true
}
})
// Load html file
mainWindow.loadFile('mainWindow.html')
// Main menu
mainMenu = Menu.buildFromTemplate(mainMenuTemplate)
// Set main menu
Menu.setApplicationMenu(mainMenu)
// Garbage handling
mainWindow.on('close',()=>{
mainWindow = null
mainMenu = null // idk if necessary
})
if (process.env.NODE_ENV !== 'production'){
mainWindow.webContents.openDevTools()
}
}
app.on('ready',e=>{
createMainWindow()
})
const mainMenuTemplate = [
{
role:'reload',
accelerator:'cmdorctrl+r',
}
]
此外,有時內容被讀取,但隨后似乎消失了。 視頻: https://imgur.com/a/qZjwSBi
如果您使用的是 fs 模塊集:
app.allowRendererProcessReuse = false;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.