面试题答案
一键面试interface FetchDataResult<T> {
data: T | null;
error: Error | null;
}
async function fetchData<T>(urls: string[]): Promise<FetchDataResult<T>[]> {
return Promise.all(urls.map(async (url) => {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json() as T;
return { data, error: null };
} catch (error) {
return { data: null, error: error as Error };
}
}));
}