簡體   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