Если мы никогда не сталкивались с трудными проблемами кодирования, мы, вероятно, недостаточно стараемся.И вместо того, чтобы сдаться, вы обратились за помощью.Будучи достаточно умным, чтобы делать все, что ставит вас в хорошее положение.
В вашем коде у вас есть команда await.Чтобы это работало, асинхронность должна быть помещена перед началом внешней функции.Имейте в виду, что ожидание работает только с обещаниями.Также обратите внимание, что у вас есть fetch один раз рядом с body, а затем снова в консоли.Это вызвало бы два запроса, когда нам нужен только один.Надеюсь, что обновленный фрагмент ниже поможет вам.
getUrbanDictionaryDefs = async function() {
const args = Array.prototype.slice.call(commandArgs);
if (!args.length) {
return message.channel.send("You need to supply a search term!");
}
const query = querystring.stringify({ term: args.join(" ") });
let body;
try {
body = await fetch(`https://api.urbandictionary.com/v0/define${query}`);
} catch (err) {
console.log(err);
return;
}
body = body.json();
console.log(body);
if (!body.list.length) {
return message.channel.send(`No results found for **${args.join(" ")}**.`);
}
const [answer] = body.list;
const embed = new Discord.RichEmbed()
.setColor("#EFFF00")
.setTitle(answer.word)
.setURL(answer.permalink)
.addField("Definition", trim(answer.definition, 1024))
.addField("Example", trim(answer.example, 1024))
.addField(
"Rating",
`${answer.thumbs_up} thumbs up. ${answer.thumbs_down} thumbs down.`
);
message.channel.send(embed);
};