Javascript 我需要使用承诺还是有更好的方法?
我遇到了一个问题,我需要使用从Ajax代码返回的数据,它在变量返回之前抓取变量,因此我认为我必须使用承诺或回调。我看了各种各样的关于承诺的文档和教程,都很混乱。我只是通过一个ajax调用返回一个int。我觉得应该很简单 以下是我的JS/JQuery:Javascript 我需要使用承诺还是有更好的方法?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我遇到了一个问题,我需要使用从Ajax代码返回的数据,它在变量返回之前抓取变量,因此我认为我必须使用承诺或回调。我看了各种各样的关于承诺的文档和教程,都很混乱。我只是通过一个ajax调用返回一个int。我觉得应该很简单 以下是我的JS/JQuery: $('.products').on('click', '.btnaddtocart', function (e) { var itemid = $(this).attr('name'); var qty = $(th
$('.products').on('click', '.btnaddtocart', function (e) {
var itemid = $(this).attr('name');
var qty = $(this).prev('input').val();
var qtyAvailable = $("#qty" + itemid).html();
var qtyInCart = 0;
$.ajax({
url: '/Shop/getItemCountInCart',
data: { id: itemid },
success: function (result) {
qtyInCart = result;
console.log("result: " + result);
}
});
console.log("qty in cart: " + qtyInCart);
qtyInCart始终为0,结果具有数字,但在qtyInCart之后获得输出。这是正确的,您只需放入
console.log(“cart中的数量:+qtyInCart”)
和所有在成功函数中使用qtyInCar的代码
你不需要使用承诺。但是,由于这是一个异步调用,并且您不知道何时将分配qtyInCart
,因此必须将涉及此变量的所有代码放入success
函数中