Здравствуйте,прошу помочь
Вот код:
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
KristalkillPlay
4632 серебряных знака10 бронзовых знаков
1 ответ 1
.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
vsemozhebuty
14.1k2 золотых знака13 серебряных знаков20 бронзовых знаков
-
Теперь пишет Cannot find module 'guildCreate.js'KristalkillPlay– KristalkillPlay2020年08月15日 14:34:09 +00:00Commented 15 авг. 2020 в 14:34
-
Хотя он есть,с командами работаетKristalkillPlay– KristalkillPlay2020年08月15日 14:35:25 +00:00Commented 15 авг. 2020 в 14:35
-
Это уже совсем другая проблема. Видимо, ошибка в строке
require(eventFile)— вы подаёте туда имя файла, а нужно абсолютный или относительный путь, дополните недостающее.vsemozhebuty– vsemozhebuty2020年08月15日 14:36:42 +00:00Commented 15 авг. 2020 в 14:36 -
fs.readdirSync()возвращает имена файлов без директорий.vsemozhebuty– vsemozhebuty2020年08月15日 14:38:05 +00:00Commented 15 авг. 2020 в 14:38 -
Спасибо,сделал глупую ошибку,я также делал как вы написали выше и получил тогда такую же ошибку,спасибо что показали мне мою маленькую ошибочку :)KristalkillPlay– KristalkillPlay2020年08月15日 16:51:06 +00:00Commented 15 авг. 2020 в 16:51
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопросlang-js