У меня есть массив с тремя именами питомцев. Один неверный. Цель состоит в том, чтобы получить домашних животных из API и, если домашнее животное не существует, вернуть измененный массив только с существующими именами домашних животных. Проблема в том, что Promise.all () возвращает неопределенное значение.
const getValidPets = async (pets) => {
const petsArray = pets.map(async (pet) => {
try {
const record = await getPetHttp(pet);
return record.name;
} catch (error) {
return undefined;
}
});
return Promise.all(petsArray).then((filteredPets) => {
const arr = filteredPets.filter(petName => petName !== undefined);
return arr; // ["Rex", "Jug"] - here is correct!
});
};
const pets = ["Rex", "Jug", "some_wrong_name"];
const finalPets = await getValidPets(pets); // undefined - incorrect