我读了很多关于promises的文章,但我仍然不确定如何实现它。
我用async=false编写了下面的AJAX调用,为了让它正常工作,但我想用promise替换它,因为我看到async=false已经被弃用了。
self.getBalance = function (order) {
var balance;
$.ajax({
url: "/API/balance/" + order,
type: "GET",
async: false,
success: function (data) {
balance = data;
},
done: function (date) {
}
});
return balance;
}你能帮我吗?我只需要一个例子来理解它。
发布于 2016-08-11 19:10:30
从getBalance方法返回promise对象:
self.getBalance = function (orderNumber) {
return $.ajax({
url: "/Exchange.API/accountInfo/balance/" + orderNumber,
type: "GET"
});
}然后像这样使用它:
service.getBalance().then(function(balance) {
// use balance here
});发布于 2016-08-11 19:11:49
作为第一点,您不希望将异步调用设置为false,因为它将锁定UI。
您可以简化返回ajax对象的方法,并将其作为promise进行处理。
self.getBalance = function (orderNumber) {
return $.ajax({
url: "/Exchange.API/accountInfo/balance/" + orderNumber,
type: "GET",
});
};
var demoNumber = 12;
self.getBalance(demoNumber).then(function(data){
console.log(data);
},function(err){
console.log("An error ocurred");
console.log(err);
});https://stackoverflow.com/questions/38894659
复制相似问题