jQuery:是否可以在另一个getJSON请求中使用getJSON请求?

CMP*_*res 2 javascript ajax jquery getjson

是否可以使用jQuery在另一个getJSON请求中使用getJSON请求?

像这样的东西:

// Population the Requests List
// jQuery AJAX call for JSON
$.getJSON( '/workspace/friends/sentRequests', function( data ) {
    // For each item in our JSON, add a table row and cells to the content string
    $.each(data, function(){
        //Loading each user data into global variable.
        $.getJSON( '/workspace/friends/' + this.friendId, function( user ) {
            requestListData.push(user);
        });

        requestTableContent += '<tr>';
        requestTableContent += '<td><a href="#" class="linkshowuser btn btn-info btn-xs"" rel="' + this.friendId + '" title="Show Details">' + this.name + '</td>';
        requestTableContent += '<td><a href="mailto:' + this.email + '">' + this.email + '</a></td>';
        requestTableContent += '<td>' + moment(useListData[-1].activity.date_established).format('MMMM Do YYYY') + '</td>';
        requestTableContent += '<td>' + this.gender + '</td>';
        requestTableContent += '<td><a href="#" class="linkdeleteuser btn btn-danger btn-xs" rel="' + this.email + '">Danger!</a></td>';
    });

    // Inject the whole content string into our existing HTML table
    $('#requestList table tbody').html(requestTableContent);
});
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可能?如果是这样我在这里做错了......

编辑:我问这个,因为它应该使用getJSON请求中的数据填充表,但事实并非如此.

joe*_*ews 5

是的,没关系.你在这里连续执行两个请求- 第二个请求在第一个返回之前不会被执行.这是必要的,因为内部请求取决于外部请求的响应.

如果您控制服务器,几乎可以肯定,通过从单个请求返回组合数据,可以提高应用程序的效率.

在第二个请求不依赖于第一个请求的情况下,您可以使用jQuery.when 并行地发出请求,等待几个promise的完成

var first = $.getJSON({  ... });
var second = $.getJSON({  ... });


$.when(first, second)
  .done(function(firstResult, secondResult) {
     // Executed when both requests complete successfully
     // Both results are available here 
  })
  .fail(function() {
    // Executed if at least one request fails
  })
Run Code Online (Sandbox Code Playgroud)

jQuery承诺文档