Array.reduce()を使う
const axios = require('axios');
// https://qiita.com/asa-taka/items/888bc5a1d7f30ee7eda2
const sleep = msec => new Promise(resolve => setTimeout(resolve, msec));
const users = [
'tj',
'dougwilson',
'jonathanong',
'defunctzombie',
'aheckmann',
'slaskis',
'ciaranj',
'michaelahlers',
'blakeembrey',
'notrab',
'riadhchtara'
];
async () => {
const names = await users.reduce(async (prev, user) => {
try {
const p = await prev;
const { data } = await axios.get(`https://api.github.com/users/${user}`);
// rate limit対策
await sleep(1000);
return [...p, data];
} catch (err) {
console.log(err);
}
}, []);
};