Avatar ·

एसिंक्रोनस अनुरोध का परिणाम कैसे प्राप्त करें और इसे फंक्शन से वापस करें?

सभी को नमस्कार! मैं JavaScript में नया हूँ और एक समस्या का सामना कर रहा हूँ जिसे मैं हल नहीं कर पा रहा हूँ। मैं एक सरल कोड लिख रहा हूँ जो API को AJAX request भेजता है और प्राप्त डेटा को वापस करने की कोशिश करता है, लेकिन मुझे हमेशा undefined मिलता है। यहाँ मेरा कोड है:

function getUserData(userId) {
    let userData;
    
    $.ajax({
        url: 'https://api.example.com/users/' + userId,
        method: 'GET',
        success: function(response) {
            userData = response;
            console.log('success के अंदर:', userData); // डेटा मौजूद है!
        }
    });
    
    return userData; // हमेशा undefined
}

const result = getUserData(42);
console.log('बाहर:', result); // undefined

मैं समझता हूँ कि समस्या एसिंक्रोनसिटी में है — फंक्शन getUserData सर्वर से जवाब आने से पहले ही वैल्यू लौटा देता है। लेकिन फिर डेटा को सही तरीके से कैसे प्राप्त करें और कोड में आगे उपयोग करें? मैंने कई विकल्प आज़माए: ग्लोबल वेरिएबल्स, setTimeout, लेकिन कुछ भी काम नहीं आया।