Итак, я создаю бота (специально для Discord), и я очень плохо знаком с JavaScript и вообще пишу код.
Я смотрел учебник об очистке сообщений от команды области (Вы сообщаете боту, сколько сообщений удалить, и он делает это.)
Все шло гладко, я работалв течение почти часа на этой команде, и после того, как я сохранил и запустил «бот» в моей CMD, я получил эту ошибку (показано в разделе ошибок и области ожидаемых результатов)
В основном:
const fetched = await message.channel.fetchMessages ({limit: args [0]});
SyntaxError: await действителен только в асинхронной функции
Но я почти уверен, что это async
функция, я все еще очень плохо знаком с кодированием, поэтому я мог ее закрытьвыключен или что-то, не уверен.
К вашему сведению в строке 31 Я думал, что "включил" вещь async
, но, возможно, я ее закрыл.
Я не отправил полный код.
Поскольку я очень новичок в кодировании, я не мог ничего сделать. Я добавил ";"(без кавычек), которая исправила одну ошибку, но не ту, о которой я спрашиваю.
// Purge messages command.
if (msg.startsWith(prefix + 'PURGE')) { // COmmand checks like "!PING", but ``startWith`` because you'll be adding a number.
// Wrapping in an async because ``awaits`` only work in asyncs.
async function purge() {
message.delete(); // Deletes command trigger, to clean up the chat more fully.
//Now, we want to check if the user has the `Moderator` role.
if (!message.member.roles.find("name", "Moderator")) { // This checks to see if they DONT have that role (the "!" inverts the true/false)
message.channel.send('You need the Moderator role to use this command!');
return; // This returns the code, so the rest doesn't run.
}
}
// Check if the argument is a number.
if (isNaN(args[0])) {
// Posts that the message is NaN (not a number)
message.channel.send('Your argument was not a number. \n Usage: ' +
prefix + 'purge <amount>'); //\n turns into a new line.
// Stops the actions, so it doesn't start deleting messages.
return;
}
const fetched = await message.channel.fetchMessages({limit: args[0]}); // This takes the argument number.
Ожидаемый результат: бот включается и удаляет большое количество указанных сообщений.
CompleteСообщение об ошибке:
C: \ Users \ xxxx \ OneDrive \ Desktop \ Xxxxx xxx \ xxx.js: 49 const fetched = await message.channel.fetchMessages ({limit: args [0]});// Это принимает номер аргумента.
SyntaxError: await действителен только в асинхронной функции в Module._compile (internal / modules / cjs / loader.js: 723: 23) в Object.Module._extensions .. js (внутренняя / modules / cjs / loader.js: 789: 10) в Module.load (внутренняя / modules / cjs / loader.js: 653: 32) в tryModuleLoad (внутренняя / modules / cjs / loader.js: 593:12) в Function.Module._load (внутренняя / modules / cjs / loader.js: 585: 3) в Function.Module.runMain (внутренняя / modules / cjs / loader.js: 831: 12) при запуске (внутренняя / bootstrap)/node.js:283:19) в bootstrapNodeJSCore (внутренний / bootstrap / node.js: 622: 3)