Javascript SyntaxError:await仅在异步函数discord bot中有效

Javascript SyntaxError:await仅在异步函数discord bot中有效,javascript,function,asynchronous,Javascript,Function,Asynchronous,我是学习任何代码的初学者。但我编写了一个Discord机器人是为了好玩,我试图给它一个“清除”消息命令,但当我运行它时,它会给我一个消息,告诉我: 进程已退出,代码为1 Uncaught/Users/ayo/Desktop/verde copy/draft.js:10 等待msg.channel.messages.fetch({limit:amount})。然后(messages=>{ ^^^^^ SyntaxError:await仅在异步函数中有效 这是我的密码: const args = m

我是学习任何代码的初学者。但我编写了一个Discord机器人是为了好玩,我试图给它一个“清除”消息命令,但当我运行它时,它会给我一个消息,告诉我:

进程已退出,代码为1 Uncaught/Users/ayo/Desktop/verde copy/draft.js:10 等待msg.channel.messages.fetch({limit:amount})。然后(messages=>{ ^^^^^

SyntaxError:await仅在异步函数中有效

这是我的密码:

const args = message.content.split('.clear').slice(1);
const amount = args.join(' '); 

if (!amount) return msg.reply('You haven\'t given an amount of messages which should be deleted!');
if (isNaN(amount)) return msg.reply('The amount parameter isn`t a number!'); 

if (amount > 100) return msg.reply('You can`t delete more than 100 messages at once!'); 
if (amount < 1) return msg.reply('You have to delete at least 1 message!'); 

await msg.channel.messages.fetch({ limit: amount }).then(messages => {
    msg.channel.bulkDelete(messages
)});
const args=message.content.split('.clear').slice(1);
const amount=args.join(“”);
如果(!amount)返回msg.reply('您没有给出应该删除的邮件数量!');
if(isNaN(amount))返回msg.reply('amount参数不是数字!');
if(amount>100)返回msg.reply('您不能一次删除超过100封邮件!');
if(amount<1)返回msg.reply('您必须删除至少1条消息!');
等待msg.channel.messages.fetch({limit:amount})。然后(messages=>{
msg.channel.bulkDelete(消息
)});

我知道这与异步函数有关,但不知道如何解决此问题。

通常的解决方案是将代码包装在一个
异步
立即执行函数表达式(IIFE)中:

也就是说,在编写的这段代码中,您根本不需要等待
调用
.fetch

如果您想“一致地”使用
async
,则不会使用承诺链:

let messages = await msg.channel.messages.fetch({ limit: amount });
await msg.channel.bulkDelete(messages);

错误基本上是告诉您需要删除什么
等待什么。
。您没有使用它。@meagar我应该用其他东西替换它吗?
let messages = await msg.channel.messages.fetch({ limit: amount });
await msg.channel.bulkDelete(messages);