पर विफल वापसी मूल्य पर कॉलबैक को बढ़ावा दें मेरे पास एक जावास्क्रिप्ट फ़ंक्शन है जो सर्वर पर AJAX कॉल करने के लिए एक सामान्य फ़ंक्शन को कॉल करता है। मुझे AJAX कॉल के कॉलबैक फ़ंक्शन से परिणाम (सत्य/गलत) पुनर्प्राप्त करने की आवश्यकता है, लेकिन परिणाम जो मुझे मिलता है वह हमेशा 'अपरिभाषित' होता है।कॉलर फ़ंक्शन रिटर्न मान
सब बिना सामान्य समारोह का एक सुपर सरलीकृत संस्करण मेरी तर्क होगा:
function CallServer(urlController) {
$.ajax({
type: "POST",
url: urlController,
async: false,
data: $("form").serialize(),
success:
function(result) {
if (someLogic)
return true;
else
return false;
},
error:
function(errorThrown) {
return false;
}
});
}
और कार्यप्रणाली को कॉल यह की तरह कुछ होगा:
function Next() {
var result = CallServer("/Signum/TrySave");
if (result == true) {
document.forms[0].submit();
}
}
"परिणाम" चर रहा है हमेशा 'अपरिभाषित', और इसे डिबग करने से मैं देख सकता हूं कि कॉलबैक फ़ंक्शन की "वापसी सत्य" पंक्ति निष्पादित की जा रही है।
यह क्यों हो रहा है इसका कोई विचार? मैं बबल कॉलबैक फ़ंक्शन से कॉलसेवर फ़ंक्शन पर वापसी मूल्य कैसे कर सकता हूं?
धन्यवाद
हालांकि यह आपके लिए काम कर रहा है, यह अप्रत्याशित कोड है, क्योंकि एसिंक पोस्ट के मूल्य को सेट करने से पहले आप कॉलसेवर से "रिटर्न वैल्यू" वापस कर सकते हैं। अंगूठे का नियम: सिंक्रोनस रैपर में एसिंक्रोनस कॉल लपेटें! –
आप $ में देख सकते हैं। जब एसिंक्रोनस कॉल पर इंतजार करने के लिए एक तरीका है http://api.jquery.com/jQuery.when/ – Andbdrew