![](/img/trans.png)
[英]I'm trying to alert “70” and “John” but instead, I'm getting an alert “[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.