如何在 TypeScript 的 Array.map 中正确使用 async/await
你好!我是 TypeScript 新手,正在尝试理解 Array.map 方法中的异步操作。
我有一个用户 ID 数组,我想通过 API 为每个 ID 获取用户数据(fetchUserData 函数返回 Promise)。我写了这样的代码:
```typescript
const userIds: number[] = [1, 2, 3, 4, 5];
async function fetchUserData(id: number): Promise<{ name: string; age: number }> {
const response = await fetch(`https://api.example.com/users/${id}`);
return response.json();
}
// 我的尝试
const users = userIds.map(async (id) => {
const userData = await fetchUserData(id);
return userData;
});
console.log(users); // 输出 Promise 数组,而不是数据!
```
问题在于 `users` 是一个 `Promise` 对象数组,而不是实际数据。我期望得到一个用户数组。如何正确等待 `map` 中所有异步操作完成,并得到最终的数据数组?
我听说过 `Promise.all`,但不理解。