因此,我有一个命令,应该发送随机事实,并将其从英语翻译成乌克兰语,但不是随机获取事实,而是显示[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')]
});
});
}
};发布于 2022-07-20 21:11:17
这是因为API返回一个对象,并隐式地将其转换为字符串。此对象具有text属性,因此应使用await translate(res.text, { to: 'uk' })。
此外,不应将then与异步/等待混合使用。只需选一个:
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'),
],
});
},
};https://stackoverflow.com/questions/73057971
复制相似问题