【发布时间】:2025-11-29 14:30:02
【问题描述】:
嘿,我希望有人能帮我解决我的问题。
以下代码应输出:
你好 世界! 再见!
但它不会等待第二行被执行。
所以输出是 你好 再见! 世界!
const Discord = require("discord.js");
const config = require("./config.json");
const client = new Discord.Client();
const prefix = "02";
client.on("message", async message => {
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
const commandBody = message.content.slice(prefix.length);
const args = commandBody.split(' ');
const command = args.shift().toLowerCase();
if (command === "help" || command === "h" || command === "hilfe"){
console.log("Hello");
await setTimeout(() => { console.log("World!"); }, 2000);
console.log("Goodbye!");
}
});
client.login(config.BOT_TOKEN);
【问题讨论】:
-
await关键字仅适用于承诺。setTimeout不返回承诺,因此它不会工作。 -
或者,您可以将所有
console.log代码放入您的setTimeout中。看看这个问题Combination of async function + await + setTimeout
标签: javascript node.js async-await discord.js