कम जवाब है, आप नहीं कर सकते हैं, AJAX में पहला ए असिंक्रोनस के लिए खड़ा है, जिसका अर्थ यह है कि जब आप रिटर्न स्टेटमेंट पर जाते हैं तो अनुरोध अभी भी चल रहा है।
आप एक तुल्यकालिक (गैर async) अनुरोध के साथ यह कर सकते हैं, लेकिन यह आम तौर पर एक बुरा बात
कुछ निम्नलिखित oughta डेटा वापस की तरह है।
function getPrice(productId, storeId) {
var returnHtml = '';
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: false,
cache: false,
dataType: "html",
success: function(html){
returnHtml = html;
}
});
return returnHtml;
}
लेकिन
जब तक आप वास्तव में बहुत सीधे परीक्षण से वापसी मान उपयोग करने में सक्षम होने की जरूरत है, तो आप हो जाएगा बहुत परीक्षण में एक कॉलबैक गुजर बेहतर।
function getPrice(productId, storeId, callback) {
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: true,
cache: false,
dataType: "html",
success: function(html){
callback(html);
}
});
}
//the you call it like
getPrice(x,y, function(html) {
// do something with the html
}
संपादित शीश की तरह कुछ, तुम लोग कहने के लिए मैं क्या कहा :-)
स्रोत
2009-09-22 01:30:27
Gotchya तेज कर रहे हैं - मैं लगा मैं कि क्या करना है। लेकिन अगर मुझे ऐसा करना पड़ा तो क्या होगा? –
यह जानने के लिए मुश्किल है कि आप getPrice() विधि का उपयोग कैसे करना चाहते हैं। इसके लिए क्या उपयोग किया जाता है? इसका उपयोग कैसे किया जा सकता है? यह उस "बाहरी" स्तर पर कोड है जिसे समायोजित करने की आवश्यकता होगी। – cletus
ठीक है मुझे मिल गया। मुझे एहसास नहीं हुआ कि उत्पाद आईडी और स्टोर आईडी दायरे में होगा और मैं वास्तव में कॉल को वापस कॉल कर सकता हूं। –