Я отредактировал вопрос. Изменена синтаксическая ошибка, и она все еще не работает.
Я использую github api для получения списка пользователей, а затем для каждого пользователя - для получения своих репозиториев. Моя идея состояла в том, чтобы получить все репозитории (которые я получил) и, когда все это будет сделано, поместить массив allRepos в пользовательский объект, а затем вернуть пользовательский объект, чтобы я мог его визуализировать.
Я сделал это с помощью цикла foreach внутри Promise.all. Я знаю, что я не использую это правильно, потому что я не могу использовать .then () после Promise.all.
Можно ли использовать Promise.all так, как мне нужно, или мне нужно заранее определить массив, который я в него помещаю?
Помощь будет оценена.
function onGetUsers() {
// var prmUsers=getUsers()
getUsers()
.then(getrepos)
.then(data=> console.log(data))//here i want to render the object
}
function getrepos(users){
var usersObj={
users: users,
}
var allRepos = []
Promise.all(users.forEach(user => {
var currUser = axios.get(user.repos_url)
.then(data => allRepos.push(data));
return currUser;
})).then('here i want to put allRepos in the usersObj')
return usersObj
}
function getUsers() {
var prmRes = axios.get('https://api.github.com/users');
var prmUsers = prmRes.then(res => {
return res.data;
});
return prmUsers;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="css/index.css">
<title>Github Users</title>
</head>
<body>
<button onclick="onGetUsers()">Get Users</button>
<script src="lib/axios.js"></script>
<script src="js/index.js"></script>
</body>
</html>