добавление нескольких пар ключ-значение к объекту после вызова ajax

#javascript #foreach #axios

#javascript #foreach #axios

Вопрос:

У меня есть массив, который возвращается из вызова ajax и будет содержать список пользователей. Мне нужно выполнить вызов ajax для каждого имени пользователя, которое есть в списке, чтобы извлечь данные. Я написал необходимый код, и я могу подключиться к серверу и получить ответ для каждого пользователя в списке. После предоставления ответа я хочу создать массив или объект, который будет содержать имя пользователя и URL-адрес изображения профиля, чтобы использовать его позже во внешнем интерфейсе. Я столкнулся с проблемой, что к объекту будет добавлен только один пользователь, как я могу это исправить?

     fetchFeatured(){
      axios.get('https://www.example.com/directory/profiles/all')
        .then( (response) => {
          const profiles = JSON.parse(response.data.profile_data.profile_list)
          profiles.length = 6
          const featured = {}
          profiles.forEach( (profile) => {
            axios.get('https://www.example.com/' profile '/')
              .then( (response) => {
                featured.username = profile
                featured.profile_img_url = response.data.users.profile_pic_url_hd
              })
          })
        })
        console.log(featured)
    }
  

Ответ №1:

featured будет находиться в цикле foreach, а для пользовательского списка / массива вы можете объявить массив userInfo в верхней части функции и вставлять featured в него при извлечении данных. .. Я немного изменил ваш код, пожалуйста, ознакомьтесь с ним.

 fetchFeatured(){
let userInfos=[];
  axios.get('https://www.example.com/directory/profiles/all')
    .then( (response) => {
      const profiles = JSON.parse(response.data.profile_data.profile_list)
      profiles.length = 6          
      profiles.forEach( (profile) => {
        axios.get('https://www.example.com/' profile '/')
          .then( (response) => {
            let featured = {};
            featured.username = profile;
            featured.profile_img_url = response.data.users.profile_pic_url_hd;
            userInfos.push(featured);
          })
      })
    })
    console.log(featured)
}
  

Комментарии:

1. вы молодец . . 🙂