如何在 JavaScript 中用 Promise 替换 'Async=false'?

use*_*165 2 javascript ajax asynchronous promise

我已经阅读了很多,promises但我仍然不确定如何实现它。

我编写了以下 AJAX 调用async=false以使其正常工作,但我想用 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;
}
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?我只需要一个例子来理解它。

Car*_*ado 5

首先,您不想将异步调用设置为 false,因为它会锁定 UI。

您可以简化返回 ajax 对象的方法并将其作为承诺进行处理。

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);
});
Run Code Online (Sandbox Code Playgroud)