async function getAllUserDetails() {
try {
// 调用API A获取用户ID数组
const responseA = await fetch('https://api-a.com/data');
if (!responseA.ok) {
throw new Error(`API A request failed with status ${responseA.status}`);
}
const userIds = await responseA.json();
// 使用Promise.allSettled并发调用API B
const userDetailsPromises = userIds.map(id => {
return fetch(`https://api-b.com/user/${id}`)
.then(response => {
if (!response.ok) {
throw new Error(`API B request for user ${id} failed with status ${response.status}`);
}
return response.json();
});
});
const userDetailsResults = await Promise.allSettled(userDetailsPromises);
const allUserDetails = [];
userDetailsResults.forEach(result => {
if (result.status === 'fulfilled') {
allUserDetails.push(result.value);
} else {
console.error(`Error fetching user details: ${result.reason}`);
}
});
return allUserDetails;
} catch (error) {
console.error('Overall error:', error);
return [];
}
}
// 调用函数获取所有用户详细信息
getAllUserDetails().then(userDetails => {
console.log('All user details:', userDetails);
});