0

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

Вот код:

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));
 }})
задан 15 авг. 2020 в 14:28

1 ответ 1

2

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

const events = fs.readdirSync(`${this.directory}Events`).filter(file => file.endsWith('.js'));
for (const eventFile of events) {
 // ...
}
ответ дан 15 авг. 2020 в 14:32
5
  • Теперь пишет Cannot find module 'guildCreate.js' Commented 15 авг. 2020 в 14:34
  • Хотя он есть,с командами работает Commented 15 авг. 2020 в 14:35
  • Это уже совсем другая проблема. Видимо, ошибка в строке require(eventFile) — вы подаёте туда имя файла, а нужно абсолютный или относительный путь, дополните недостающее. Commented 15 авг. 2020 в 14:36
  • fs.readdirSync() возвращает имена файлов без директорий. Commented 15 авг. 2020 в 14:38
  • Спасибо,сделал глупую ошибку,я также делал как вы написали выше и получил тогда такую же ошибку,спасибо что показали мне мою маленькую ошибочку :) Commented 15 авг. 2020 в 16:51

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.