我使用以下代码:
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;
}
但我无法以这种方式运行
如何与jquery一起使用async / await?
答案 0 :(得分:1)
解决方案是:
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: [/* ... */]
}