我目前有以下(简化为此)代码来执行两个Ajax调用,我需要在使用when处理更多代码之前完成这些调用(我知道这可以链接但是when构造是可扩展的)。
function f1(ID) {
return $.ajax({
url: "'/ajax/getF1/')?>" + '/' + ID,
dataType: "json"
});
}
function f2(ID) {
return $.ajax({
url: "'/ajax/getF2/')?>" + '/' + ID,
dataType: "json"
});
}
$.when(
f1(ID),
f2(ID)
).done(function(a1,a2) {
....do something...
});
这似乎不优雅,所以我的问题是如何将两个命名函数f1和f2转换为内联的匿名函数。简单地用f1函数的内容替换(假设)f1并不起作用。
在我看来,这应该是简单的,但它是在逃避我。
答案 0 :(得分:4)
您将承诺传递给$.when()
而不是函数。那么,你能做的就是:
$.when($.ajax(...), $.ajax(...)).then(...)
不需要中间功能。
答案 1 :(得分:1)
只是做:
$.when(
$.ajax({
url: "'/ajax/getF1/')?>" + '/' + ID,
dataType: "json"
}),
$.ajax({
url: "'/ajax/getF2/')?>" + '/' + ID,
dataType: "json"
})
).done(function(a1,a2) {
....do something...
})