可能重复:
How to return the value of a function after the result of an ajax call has come?
我有一个用于计算控制器中项目数量的函数。
function GetQtyItem() {
var qty;
var urlQuantity = "Quotation/CountQuantity";
$.getJSON(urlQuantity, function (quantity) {
qty = quantity.ja;
});
alert(qty); //3
return qty;
}
我在文件名中包含了正确的部分,并在我的asp.net mvc项目的另一个视图中调用了这个函数:
<script language="javascript" type="text/javascript">
var i = GetQtyItem();
alert(i);
</script>
但警告对话框中的结果是Undefined
。
任何人都能告诉我,我怎样才能用正确的价值提醒它(3)。谢谢你提前。
答案 0 :(得分:1)
$。getJSON是一个AJAX请求......需要时间。您必须等待数据返回,然后提醒结果。
试试这个:
var qty, i;
function GetQtyItem() {
var urlQuantity = "Quotation/CountQuantity";
return $.getJSON(urlQuantity, function (quantity) {
qty = quantity.ja;
alert('Request is done');
});
}
i = GetQtyItem();
i.done(function() {
alert("Quantity is " + qty);
});