كيفية الحصول على نتيجة من طلب غير متزامن في JavaScript؟
مرحباً بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة تحيرني. أحاول الحصول على بيانات من طلب AJAX وإرجاعها من الدالة، لكنني لا أستطيع.
إليك الكود الخاص بي:
```javascript
function getUserData(userId) {
let userData;
fetch(`https://api.example.com/users/${userId}`)
.then(response => response.json())
.then(data => {
userData = data;
console.log('داخل then:', userData); // البيانات موجودة
});
console.log('بعد fetch:', userData); // undefined
return userData; // دائماً undefined
}
const user = getUserData(123);
console.log('النتيجة:', user); // undefined
```
أفهم أن المشكلة تتعلق بعدم التزامن، لكنني لا أستطيع فهم كيفية "إرجاع" البيانات بشكل صحيح. جربت استخدام async/await، لكنني ما زلت أحصل على undefined. من فضلك، اشرح كيفية العمل مع الاستدعاءات غير المتزامنة والحصول على النتيجة. سأكون ممتناً جداً للشرح المفصل.