Avatar ·

كيفية استخدام async/await بشكل صحيح داخل Array.map في TypeScript؟

مرحبًا! أنا مبتدئ في TypeScript وأحاول فهم العمليات اللاإتزامنية داخل طريقة Array.map. لدي مصفوفة من معرفات المستخدمين، وأريد لكل معرف الحصول على بيانات المستخدم عبر API (الدالة 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); // يطبع مصفوفة من Promises، وليس البيانات! ``` المشكلة هي أن `users` هي مصفوفة من كائنات `Promise`، وليست البيانات نفسها. كنت أتوقع الحصول على مصفوفة من المستخدمين. كيف يمكنني الانتظار بشكل صحيح حتى تكتمل جميع العمليات اللاإتزامنية داخل `map` والحصول على المصفوفة النهائية مع البيانات؟ سمعت عن `Promise.all`، لكنني لا أفهم