У меня проблема (с использованием NodeJS + Express) при попытке получить в 'users' информацию из 3 разных запросов (2 домена), и я не могу получить то, что хочу. Я бы хотел, чтобы функция getAllUsers () возвращала что-то вроде этого:
[
{
"username": "joe_example",
"plays": 178,
"friends": 7,
"uri": "/users/joe_example"
},
...snip additional users...
]
Вот моя основная функция:
async function getAllUsers() {
let users = await axios.get('http://localhost:8000/friends')
.then(response => {
response.data["friends"].map(user => {
user = getUser(user.username)
})
})
.catch(error => console.log(error))
return users
}
async function getUser(name) {
let user = await axios.all(
[
axios.get('http://localhost:8000/friends/' + name),
axios.get('http://localhost:8001/plays/' + name)
]).then(axios.spread((res1, res2) => {
user["username"] = name
user["friends"] = res1.data["friends"].length
user["plays"] = res2.data["plays"].length
user["uri"] = "/users/" + name
})).catch(error => { console.log(error) })
return user
}
Да, это может звучать странно ... У службы друзей есть имена пользователей, и вам нужно позвонить /friends/<username>
, чтобы узнать количество друзей у каждого пользователя, так же как и /plays/<username>
Есть идеи или предложения? Я перепробовал все, что знаю: (