Discord.js node.js 代码对象承诺问题

client.on('message', message => {

    if (!message.content.startsWith(prefix) || message.author.bot) return;

  

    const args = message.content.slice(prefix.length).trim().split(/ +/);

    const command = args.shift().toLowerCase();

    let member = message.guild.members;

      if (command === 'ping') {

            message.channel.send(`${srv.getServerName().then()}`)

        }

});

我有这样的编码,当我从通道写入 ping 时,它应该写入服务器名称,但它写入对象承诺。我该如何解决?抱歉我的英语不好,我使用谷歌翻译。


蝴蝶刀刀
浏览 112回答 1
1回答

心有法竹

这似乎srv.getServerName()是一个 Promise,您将其而不是解析值发送到您的频道。这就是为什么你会看到[object Promise]。您可以先获取服务器名称并从其方法发送消息.then():if (command === 'ping') {  srv    .getServerName()    .then(name => message.channel.send(name))}或者,您可以在发送回调之前将其设为函数async和响应await:client.on('message', async (message) => {  if (!message.content.startsWith(prefix) || message.author.bot) return;  const args = message.content.slice(prefix.length).trim().split(/ +/);  const command = args.shift().toLowerCase();  const member = message.guild.members;  if (command === 'ping') {    const serverName = await srv.getServerName();    const embed = new MessageEmbed()      .setTitle('Embed title')      .setDescription(`This is the "${serverName}" server`);    message.channel.send(embed);  }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript