fs.readdirSync(...).filter(...).then is not a function

Здравствуйте,прошу помочь

Вот код:

fs.readdirSync(`${this.directory}Events`).filter(file => file.endsWith('.js')).then(events => {         
            for (const eventFile of events) {
            delete require.cache[eventFile];
            const { name } = path.parse(eventFile);
            const File = require(eventFile);
            if (!this.isClass(File)) throw new TypeError(`Ивент ${name} не экспортирует класс.!`);
            const event = new File(this.Main, name);
            if (!(event instanceof Event)) throw new TypeError(`Ивент ${name} не принадлежит Ивентам`);
            this.Main.events.set(event.name, event);
            event.emitter[event.type](name, (...args) => event.run(...args));
        }})

Ответы (1 шт):

Автор решения: vsemozhebuty

.then() — это метод Promise. fs.readdirSync() — синхронная функция, она возвращает не Promise, а массив, то же самое делает .filter(). Присвойте значение этих синхронных вызовов переменной и дальше работайте с ней:

const events = fs.readdirSync(`${this.directory}Events`).filter(file => file.endsWith('.js'));

for (const eventFile of events) {
  // ...
}
→ Ссылка