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) {
// ...
}