此函数进行两次连续的AJAX调用,page1返回的数据在page2的请求中使用。
function call() {
return $.ajax("http://example.com/page1").done(function(d) {
$.ajax("http://example.com/page2", { data: d.foo });
});
}
我希望call()
返回一个仅在page2
完成加载后才会解析的承诺,而不是像page1
完成时那样结束,所以有可能这样做:
call().done(function() { console.log("page2 has loaded.") });
最好的方法是什么?
答案 0 :(得分:3)
call()
只需要进行非常轻微的修改。
将done
更改为then
并返回内部$.ajax()
。
function call() {
return $.ajax("http://example.com/page1").then(function(d) {
return $.ajax("http://example.com/page2", { data: d.foo });
});
}