[英]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.