javascript - manipulating local variable with a callback in JS -
यहां jquery के साथ मेरा कोड है:
फ़ंक्शन check_hotel_exists (मान, कॉल) {var url = बेस_यूआरएल + 'एजेक्स / चेकइनिक्एहॉटल'; Var प्रतिक्रिया = गलत; $ .get (url, {hotelname: value}, फ़ंक्शन (डेटा) {यदि (डेटा === 'सच') प्रतिक्रिया = सच;}); चेतावनी ((प्रतिक्रिया)? 'होटल मौजूद नहीं है': 'होटल अस्तित्व'); वापसी [प्रतिक्रिया, "वह होटल पहले से मौजूद है"]; }
प्रतिक्रिया का मान नहीं बदलता है।
मैं प्राप्त समारोह से कॉलबैक के साथ प्रतिक्रिया के मूल्य को कैसे बदल सकता हूँ? मैं एक सर्वर प्रतिक्रिया से चर डेटा की अपेक्षा कर रहा हूं जो कि या तो 'सच्चे' या 'झूठी' है।
किसी भी मदद की सराहना की जाएगी।)
मान बदल नहीं रहा है क्योंकि एजेक्स कॉलबैक को एक्टिविंग को एसिंक्रोनस के लिए प्रतिक्रिया सेट करना है, जब check_hotel_exists
फ़ंक्शन से बाहर हो गया। async
विकल्प को false
पर सेट करके एजेक्स अनुरोध को निष्पादित करने के लिए संभव समाधान होगा।
$। Ajax ({url: Base_url + 'ajax / checkuniquehotel', async: गलत, डेटा: {hotelname: value}, सफलता: कार्य (परिणाम) {यदि (परिणाम === 'सच') प्रतिक्रिया = सच;}});
एक अन्य समाधान अतुल्यकालिक कॉल करने के लिए है, लेकिन इस स्थिति में सभी कार्य को सफलता
कॉलबैक में किया जाना चाहिए, आपके फ़ंक्शन को अब वापस करने की आवश्यकता नहीं है मान (उदाहरण के लिए, एक त्रुटि संदेश दिखाएं, अगर होटल का नाम पहले से ही सफलता कॉलबैक में मौजूद है)। आईएमएचओ यह एक बेहतर तरीका है।
Comments
Post a Comment