【发布时间】:2022-01-05 15:48:51
【问题描述】:
我想在 if 语句中使用 await 关键字,但它说:
await message.guild.channels.create("tickets", {
^^^^^
SyntaxError: await is only valid in async functions and the top level bodies of modules
if (message.content.startsWith("n!ticket setup")) {
let channel = message.mentions.channels.first()
let kate;
let modrole = message.mentions.roles;
message.guild.channels.cache.forEach(chn => {
if (chn.type == "GUILD_CATEGORY" && !kate && chn.name.toLowerCase() == "tickets ") {
kate = chn;
}
})
if (!channel) return message.channel.send({
content: "Du musst einen Kanal angeben wo die Nachricht reingesendet werden soll."
});
if (!kate) {
await message.guild.channels.create("tickets", {
type: "GUILD_CATEGORY",
permissionOverwrites: [{
id: message.guild.id,
deny: ["VIEW_CHANNEL"]
},
{
id: bot.user.id,
allow: ["VIEW_CHANNEL"]
}
]
}).then(l => kate = l);
}
}
【问题讨论】:
-
所以你不在全局范围内或者你不在一个模块中。请edit您的帖子并提供minimal reproducible example:这与
if声明无关,因此请删除与问题无关的所有内容。这是在哪个范围?package.json是否说这应该作为一个模块执行(即"type": "module")?您是否尝试过使用.mjs文件扩展名而不是.js文件扩展名?
标签: javascript node.js async-await