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.
- My first async function fetches some data from an api and returns an
array(users) of objects . - The second async function calls another api that takes the
idproperty from
each object ofusersas url parameter.and will returns a status for each
object and we want to filter only those user that has status204.
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.
unhandled promise rejection