Avatar ·

كيفية استخدام async/await بشكل صحيح داخل حلقة forEach في JavaScript؟

مرحباً بالجميع! أنا مبتدئ في JavaScript وأحاول فهم التزامن. لدي مصفوفة من عناوين URL، وأريد تحميل البيانات من كل منها بشكل تسلسلي باستخدام `async/await`. قررت استخدام `forEach`، لكنني واجهت مشكلة: الكود الخاص بي لا ينتظر اكتمال كل طلب، بل يبدأها جميعاً في نفس الوقت. إليك الكود الخاص بي: ```javascript const urls = ['/api/user/1', '/api/user/2', '/api/user/3']; async function fetchUserData(url) { const response = await fetch(url); return await response.json(); } async function loadAllUsers() { urls.forEach(async (url) => { const userData = await fetchUserData(url); console.log('User loaded:', userData); }); console.log('All users loaded!'); } loadAllUsers(); ``` عند تشغيل هذا الكود، أرى في وحدة التحكم رسالة "All users loaded!" فور استدعاء `loadAllUsers()`، ثم تظهر بيانات المستخدمين بعد ذلك. لماذا لا يعمل `await` داخل `forEach`؟ كيف يمكنني تنظيم ذلك بشكل صحيح؟