亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號