पर कॉलबैक फ़ंक्शन का रिटर्न मान असाइन करना मेरा प्रश्न जावास्क्रिप्ट के बारे में है। मेरे पास एक कॉलबैक फ़ंक्शन है जो सफल कॉलबैक पर स्थिति ऑब्जेक्ट प्राप्त करता है।जावास्क्रिप्ट वैश्विक चर
समस्या यह सिर्फ मुझे इसे करते हैं कि जब मैं एक सफल कॉलबैक पर एक वैश्विक चर के लिए स्थिति ऑब्जेक्ट के गुणों को सेट करने का प्रयास करता है और वैश्विक बस अपरिभाषित रहता है।
ऑब्जेक्ट गुणों को वैश्विक चरों पर सीधे सेट करने के बजाय इसके कामकाज के रूप में मैं कॉलबैक फ़ंक्शन के माध्यम से इसे वापस करने का प्रयास कर रहा हूं लेकिन मुझे कॉलबैक फ़ंक्शन के वापसी मूल्य को वैश्विक रूप से सेट करने का कोई तरीका नहीं मिला चर।
यहाँ सरलीकृत कोड है।
var x;
navigator.geolocation.getCurrentPosition(onSuccess, onError);
//on Successful callback receives a Position Object
function onSuccess(position) {
var coords = position.coords;
x=coords; // Setting directly to an object does not work x still remains undefined after succesful callback
return coord; // Trying to set this to a global object
}
// onError Callback receives a PositionError object
//
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
वास्तव में अच्छा बिंदु, मेरा जवाब मेरे हिस्से पर एक बेवकूफ निरीक्षण है। कोड रैखिक नहीं है, इसलिए कॉलबैक में कॉर्ड के साथ जो कुछ भी करना है, उसे करने के लिए आपको – WickyNilliams
बाध्य किया गया है, यह सुनिश्चित करने के लिए कि आप वास्तव में सही हैं। GetCurrentPosition फ़ंक्शन भौगोलिक स्थान प्राप्त करने का प्रयास कर रहा है जो असीमित है यही कारण है कि जब मैं इसे ग्लोबल वैरिएबल से एक्सेस करने का प्रयास करता हूं तो शायद यह सेट नहीं होता है और अपरिभाषित नहीं होता है। क्या एसिंक फ़ंक्शन के काम के बाद वैरिएबल को वापस करने के लिए वैरिएबल को असाइन करने का कोई तरीका नहीं है? –
@ टोरुकोजिन: नहीं, मूल्य को कहां वापस किया जाना चाहिए? जैसा कि कहा गया है, कोड असीमित रूप से चलाता है। यही कारण है कि कॉल कॉलबैक फ़ंक्शन के पैरामीटर के रूप में पारित किया जाता है ताकि आप इसका उपयोग कर सकें और जो भी चाहें कर सकें। यदि मूल्य को वापस करने के लिए संभव था, तो 'getCurrentPosition' इसे करेगा। लेकिन ऐसा नहीं है, इसलिए आपने कॉलबैक प्रदान किया है। हो सकता है कि आपको [यह आलेख] मिलेगा (http://felix-kling.de/blog/2011/01/14/how-to-return-data-from-an-ajax-call/) समस्या को समझने में सहायक (लेकिन मैं लिखित में अच्छा नहीं हूं;)) –