У меня есть веб-страница, которую я хочу заполнить данными для пользователя при загрузке страницы.Я знаю, что могу сделать это один раз, используя axios.get()
на конкретной странице, на которой я хочу, чтобы он запускался.
Но я хотел бы сделать это циклически перебирать статический список значений и выполнять вызов API длякаждое значение, а затем передать его пользователю, когда они посещают страницу.
Я попытался сделать это в промежуточном программном обеспечении, но я получаю сообщение об ошибке, что мой friend_list
не определен, и я немного озадачен относительно того, гдеЯ ошибаюсь.
Это мой JS-файл в промежуточном программном обеспечении
import axios from 'axios'
export default function () {
friends_list = [
{ tag: 'friend1' },
{ tag: 'friend11' },
{ tag: 'friend16' },
{ tag: 'friend9' }
]
friends_list.forEach(i => {
axios.get('https://some.api/friend/'+i.tags+'/profile')
.then(res => {
stats = res.data['d']
console.log(stats)
return {
game_stats: [
{EKIA: stats['a']},
{Deaths: stats['b']},
{HeadShots: stats['c']},
{Wins: stats['d']},
{Suicides: stats['e']},
{EKIAdRatio: stats['f']},
{KillHC: stats['g']}
]
}
});
})
};
Я могу сделать этот вызов на своей странице stats.vue, но не могу перебратьсписок на странице stats.vue.
Вот JSFiddle моей ошибки http://jsfiddle.net/cL9a1pdb/
Любая помощь очень ценится.
ОБНОВЛЕНИЕ СОТВЕТ: Здесь произошла пара ошибок, которые необходимо было исправить. Первая - это то, что было изложено ниже относительно того, как forEach должен быть сконструирован как this.friends_list.forEach....
2-й, как я передавал данные nuxtне удалось с ошибкой, что объект не былопределяется потому, что он не заполняется данными
Рабочий код:
import axios from 'axios'
export default {
data(){
friends_list = [
{ tag: 'friend1' },
{ tag: 'friend11' },
{ tag: 'friend16' },
{ tag: 'friend9' }
],
game_stats: {}
},
created(){
this.friends_list.forEach(i => {
axios.get('https://some.api/friend/'+i.tags+'/profile')
.then(res => {
return {
this.game_stats[res.data['d']['username'] = {
{EKIA: res.data['d']['a']},
{Deaths: res.data['d']['b']},
{HeadShots: res.data['d']['c']},
{Wins: res.data['d']['d']},
{Suicides: res.data['d']['e']},
{EKIAdRatio: res.data['d']['f']},
{KillHC: res.data['d']['g']}
}
}
});
})
};