Как мне вернуть данные из этой функции?
Вы не можете.Это как «Я хочу получить газету завтрашнего дня».Это тоже не сработает.Вы должны подождать до следующего дня, чтобы прочитать газету, или в вашем случае, пока все данные не поступят в браузер.Вы не можете вернуть данные напрямую, но Promise , который когда-нибудь доставит данные.В вашем случае вы можете использовать Promise.all
, чтобы объединить массив обещаний в обещание, которое разрешается в массив:
function getResponse() {
const promises = [];
for (let i = 0; i < length; i++) {
promises.push(axios.get(url + i));
}
return Promise.all(promises)
.then(results => [].concat(...results));
}
Так что теперь, если вы сделаете:
console.log(getResponse())
Вы получитеОбещание.Чтобы получить фактические данные, вы должны подождать, пока данные не поступят:
getResponse().then(console.log);