@Nikita1244
Anonymous

Как сделать name из .addFields ссылкой — EmberBuilder, Discord.js?

Здравствуйте! Я сделал слеш-команду для поиска в Google. Теперь, мне нужно сделать сортировку. Я решил реализовать это через forEach. Две проблемы. У меня, почему-то не добавляются филды. И также, хотел бы знать, как сделать заголовок филда ссылкой. Код:

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]})
    }
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега discord.js
Javascript-разработчик
1. т.к 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'е можно вставлять только в:
  • описание
  • значения филдов

синтаксис:
[текст](ссылка 'появляющийся текст при наведении курсора на ссылку (необязательно)')

указывается полная ссылка с протоколом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы