Javascript Electron-fs.readdir回调有时不';重新加载时不执行
在我重新加载包含该脚本的窗口后,大约30%的时间我的electron应用程序不执行fs.readdir回调。当我用Javascript Electron-fs.readdir回调有时不';重新加载时不执行,javascript,node.js,electron,Javascript,Node.js,Electron,在我重新加载包含该脚本的窗口后,大约30%的时间我的electron应用程序不执行fs.readdir回调。当我用electron.打开应用程序时,问题永远不会发生,它只会在我重新加载窗口后发生 我尝试在执行fs.readdir之前添加5秒的setTimeout,但是这并没有改变任何事情。此外,在第一次运行fs.readdir之后,所有正在进行的fs.readdir回调都不会执行,除非之后立即执行,或者之前从未重新加载过窗口 有人知道为什么会发生这种情况以及解决方案吗 mainWindow.js
electron.
打开应用程序时,问题永远不会发生,它只会在我重新加载窗口后发生
我尝试在执行fs.readdir之前添加5秒的setTimeout,但是这并没有改变任何事情。此外,在第一次运行fs.readdir之后,所有正在进行的fs.readdir回调都不会执行,除非之后立即执行,或者之前从未重新加载过窗口
有人知道为什么会发生这种情况以及解决方案吗
mainWindow.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()
main.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',
}
]
此外,有时内容会被阅读,但似乎会消失。视频:如果您使用的是fs模块集:
app.allowRendererProcessReuse = false;