首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取SyntaxError:等待仅在异步函数和模块的顶层主体中有效,同时使用discord.js指南

获取SyntaxError:等待仅在异步函数和模块的顶层主体中有效,同时使用discord.js指南
EN

Stack Overflow用户
提问于 2022-03-26 00:40:57
回答 3查看 925关注 0票数 0

我正在研究discord.js的指南,但是当我尝试为斜杠命令设置权限时,我一直得到SyntaxError:等待仅在异步函数和模块的顶层主体中有效。不确定我是否遗漏了一些东西,或者它是否简单,因为我对此并不熟悉,但我无法找到解决方案。

这是我试图使用的指南中的代码

代码语言:javascript
运行
复制
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 });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-03-26 01:39:09

如果还没有,则需要将await封装到async-marked函数中。

试试下面的代码!

代码语言:javascript
运行
复制
// 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函数中)。

您还可以将该函数设置为自调用、匿名、异步函数,如下所示.

代码语言:javascript
运行
复制
(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

票数 2
EN

Stack Overflow用户

发布于 2022-03-26 01:30:01

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

票数 2
EN

Stack Overflow用户

发布于 2022-03-26 01:36:44

你也可以试试这个:

代码语言:javascript
运行
复制
(async function(){
   if (!client.application?.owner) await client.application?.fetch();
   //And more await calls...
})();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71624471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档