【发布时间】:2014-03-09 21:02:22
【问题描述】:
那么,如果我有多个 Ajax 调用,是否每个调用都有 done 回调并在 when then? 中?
【问题讨论】:
-
我猜你必须为每个 api.jquery.com/jQuery.Deferred 创建一个单独的延迟对象。
标签: jquery promise jquery-deferred
那么,如果我有多个 Ajax 调用,是否每个调用都有 done 回调并在 when then? 中?
【问题讨论】:
标签: jquery promise jquery-deferred
是的,当然可以。 done 方法甚至返回了 Promise,所以你可以简单地写
$.when(
$.ajax(…).done(function(r) {
console.log("ajax 1 resolved with", r)
}),
$.ajax(…).done(function(r) {
console.log("ajax 2 resolved with", r)
})
).done(function(r1s, r2s) {
console.log("both ajax requests done");
});
【讨论】:
您必须将每个 ajax 调用设置为延迟对象,然后将延迟对象设置为在 .then() 方法中解析。
【讨论】: