I am trying to call two apis with two async function.The thing is that the second
async function's api call depends upon the the result of the first async function.
id property fromusers as url parameter.and will returns a status for each204.I know the logic on how to do this but can't implement it in real world.Plus
nested async functions always seems hard to me , here is my attempt :
const getUsers = async () => {
const { users } = await axios.get(url);
return users;
};
const getCheckedUsers = async () => {
const allUsers = await getUsers();
const promises = allUsers.then(users => {
users.map(async user => {
const { status } = await axios.get(another_url_that_takes_`user.id`);
if (status === "204") {
return user;
}
});
});
const results = await Promise.all(promises);
return results;
}
First function works fine i tested it separately.It returns the needed array.
But the issue starts when i try to combine first async function with the second
one.
Using async/await there's no need to get lost with Promises since the code just runs line by line:
const getUsers = async () => {
const { users } = await axios.get(url);
return users;
};
const getCheckedUsers = async () => {
const allUsers = await getUsers();
const results = [];
for (user of allUsers) {
const { status } = await axios.get(`another_url_that_takes_${user.id}`);
if (status === "204") {
results.push(user);
}
}
return results;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With