async execute(interaction) {
const avatar = interaction.user.avatarURL()
const embed = new EmbedBuilder()
.setAuthor({name: "Результаты поиска в Google", iconURL: avatar})
.setColor(0x0099FF)
const req = interaction.options.getString('text')
axios.get(`https://www.googleapis.com/customsearch/v1?key=${googleAPI}&cx=${googleID}&q=${encodeURIComponent(req)}`)
.then((response) => {
response.data.items.forEach((item) => {
embed.addFields({name: `${item.title}`, value: item.snippet})
})
}).catch((error) => {
console.log(error);
return interaction.reply({
content: "Произошла ошибка при поиске в Google. Попробуйте позже.",
ephemeral: true
})
});
interaction.reply({embeds: [embed]})
}
axios.get()
возвращает промис (а как известно, промисы выполняются асинхронно от остального кода), все изменения, которые вы сделаете внутри .then()
будут видны исключительно там.let num = 5;
let promise = new Promise((resolve, reject) => resolve());
promise.then((r) => {
num = 9;
console.log(`${num}, внутри .then()`); // "9, внутри .then()"
})
console.log(`${num}, вне .then()`); // "5, вне .then()"
2. ссылки в embed'е можно вставлять только в:[текст](ссылка 'появляющийся текст при наведении курсора на ссылку (необязательно)')