Reputation:
In React, I want to pass a function getRepos()
to componentDidMount()
. getRepos()
waits for another function which passes data from API call. I want to be able to put all promises in one array and then resolve it. How do I do that? Here's what I've got so far:
async getRepos() {
const tmpRepos = [];
const numPages = await this.getOrgPages();
for (let page = 1; page <= numPages; page += 1) {
axios.get(`https://api.github.com/orgs/angular/repos?page=${page}&per_page=100&${API_KEY}`)
}
axios.all(tmpRepos).then(res => console.log(res));
}
But just logs an empty array
Upvotes: 3
Views: 5306
Reputation: 19587
Create a new array, and fill it by results of axios.get
calls, use this array in axios.all
:
async getRepos() {
const ops = [];
const numPages = await this.getOrgPages();
for (let page = 1; page <= numPages; page += 1) {
let op = axios.get(`https://api.github.com/orgs/angular/repos?page=${page}&per_page=100&${API_KEY}`);
ops.push(op);
}
let res = await axios.all(ops);
console.log(res);
}
Upvotes: 5