2

该函数进行两次连续的 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.") });

最好的方法是什么?

4

1 回答 1

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 });
    });
}
于 2013-10-01T08:41:27.360 回答