getting SyntaxError: await is only valid in async functions and the top level bodies of modules while working through the discord.js guide

getting SyntaxError: await is only valid in async functions and the top level bodies of modules while working through the discord.js guide

我正在阅读 discord.js 的指南,但是当我尝试为斜杠命令设置权限时,我不断收到 SyntaxError: await is only valid in async functions and the top level bodies of modules。不确定我是否遗漏了什么,或者它是否很简单,因为我是新手,但我找不到解决方案。

这是我正在尝试使用的指南中的代码

if (!client.application?.owner) await client.application?.fetch();

const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

const permissions = [
    {
        id: '224617799434108928',
        type: 'USER',
        permission: false,
    },
];

await command.permissions.add({ permissions });

我意识到我没有把它放在一个函数中,我不知道我是怎么错过的,但我想我真的需要休息一下,因为我在做了一个之后就得到了它。

你也可以试试这个:

(async function(){
   if (!client.application?.owner) await client.application?.fetch();
   //And more await calls...
})();

您需要将 await 包装在一个带有 async 标记的函数中,如果您还没有的话。

试试下面的代码!

// Change the name of the function to whatever name you want!
const discordFetchData = async () => {
  if (!client.application?.owner) await client.application?.fetch();

  const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

  const permissions = [
    {
      id: '224617799434108928',
      type: 'USER',
      permission: false,
    },
  ];

  await command.permissions.add({ permissions });
};

discordFetchData();

上面的代码会让您基本了解如何处理您的代码(将其包装在 async 函数中)。

您还可以将函数设为 self-calling、匿名、异步函数,如下所示。

(async () => {
  if (!client.application?.owner) await client.application?.fetch();

  const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

  const permissions = [
    {
      id: '224617799434108928',
      type: 'USER',
      permission: false,
    },
  ];

  await command.permissions.add({ permissions });
})();

最终,这两种解决方案都会奏效!


有关详细信息,请访问 async function - JavaScript | MDN