Javascript 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

在我重新加载包含该脚本的窗口后,大约30%的时间我的electron应用程序不执行fs.readdir回调。当我用
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;