我想在函数中执行AJAX请求,然后返回请求的结果(使用mootools)。请求和响应正如我所愿,但变量仍为0。
这里我的功能:
function recalcPrice(baseprice, rclass, count){
var newPrice = 0;
var request = new Request.JSON({
method: 'post',
url: 'controller/xhr_request.php',
async: false, //UPDATE: that line solves the problem
data: {
'performaction' : 'calcNumberPrice',
'baseprice' : baseprice,
'class' : class,
'number' : count
},
timeout : 5000,
onComplete: function(response) {
console.log('response=' + response);
if(response.status == 'success'){
console.log('price = ' + response.price);
newPrice = response.price;
}
}
});
request.send();
return newPrice;
}
控制台显示价格已正确计算,但变量newPrice
未更改...
这个问题已经在SO中已经知道,但这个解决方案不应该成功吗? https://stackoverflow.com/a/5541322/1059828
答案 0 :(得分:0)
啊我错过了将异步请求设置为false
async: false,
现在它正在运作