为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蝴蝶刀刀 2023-06-29 22:23:53
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 时,它应该写入服务器名称,但它写入对象承诺。我该如何解决?抱歉我的英语不好,我使用谷歌翻译。
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

这似乎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);

  }

});


查看完整回答
反对 回复 2023-06-29
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信