Как я могу использовать async / await с jquery ajax? - PullRequest
0 голосов
/ 16 ноября 2018

Я использую следующий код:

function getForm() {
    var container = $("<div/>");
    //.......
    var s = jqBS3Input("idToBeSet", "select", null, "In charge");
    container.append(s);
    s = s.find("select");
    $.ajax({
        url:"/ThirdParty/Users",
        async: false
    }).done(function(data, status, jxqhr) {
        data.Data.forEach(function(r) {
            s.append($("<option>" + r.FullName + "</option>"));
        })
    });
    return container;
}

Вместо этого я хотел бы сделать следующее:

function async getFormAsync() {
    var container = $("<div/>");
    //.......
    var s = jqBS3Input("idToBeSet", "select", null, "In charge");
    container.append(s);
    s = s.find("select");
    var resps = await $.get("/ThirdParty/Users");
    resps.always(function(data, status, jxqhr) {
        data.Data.forEach(function(r) {
            s.append($("<option>" + r.FullName + "</option>"));
        })
    });
    return container;
}

, но я не могу запустить его таким образом

Как я могу использовать async / await с jquery?

1 Ответ

0 голосов
/ 29 ноября 2018

решение:

try {
    var users = await $.ajax({
        url: "/ThirdParty/Users"
    });        
    users.Data.forEach(function (r) {
        s.append($("<option value='" + r.Id.toString() + "'>" + r.FullName + "</option>"));
    });
} catch (err) {

}

Не беспокоить Data, возврат вызова является объектом:

{
    ExitCode: 0,
    Data: [/* ... */]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...