繁体   English   中英

我得到 [object Object] 而不是输出

[英]I'm getting [object Object] instead of output

所以,我有一个命令应该发送随机事实并将其从英语翻译成乌克兰语,但它没有得到随机事实,它只是显示[object Object] 这是我的代码,我在 discord.js v13 上。

const { MessageEmbed } = require('discord.js');
const fetch = require('node-fetch');
const translate = require('@iamtraction/google-translate');
module.exports = {
  name: 'fact',
  description: 'Випадковий факт',
  category: 'Fun',
  async run({ interaction, bot }) {
    const response = await fetch('https://uselessfacts.jsph.pl/random.json?language=en');
await response.json().then(async res => {
const translated = await translate(res, { to: 'uk' });
      interaction.reply({
        embeds: [new MessageEmbed().setTitle('Факт').setDescription(translated.text).setColor('RANDOM')]
      });
    });
  }
};

这是因为 API 返回一个对象,而您将其隐式转换为字符串。 这个对象有一个text属性,所以你应该使用await translate(res.text, { to: 'uk' })

此外,您不应该将then s 与 async/await 混合使用。 随便挑一个:

const { MessageEmbed } = require('discord.js');
const fetch = require('node-fetch');
const translate = require('@iamtraction/google-translate');
module.exports = {
  name: 'fact',
  description: 'Випадковий факт',
  category: 'Fun',
  async run({ interaction, bot }) {
    const response = await fetch(
      'https://uselessfacts.jsph.pl/random.json?language=en',
    );
    const { text } = await response.json();
    const translated = await translate(text, { to: 'uk' });
    interaction.reply({
      embeds: [
        new MessageEmbed()
          .setTitle('Факт')
          .setDescription(translated.text)
          .setColor('RANDOM'),
      ],
    });
  },
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM