Deferred and Ajax

后端 未结 3 913
生来不讨喜
生来不讨喜 2021-02-06 06:33

Reading a JSON-Service like this:

$.ajax({
  url:\'activeIDs\',
  success : function(data){ // data = [14,15]
    var tableRows = [];
    for (var dataIndex=0; d         


        
3条回答
  •  迷失自我
    2021-02-06 07:21

    Why do you want $.Deferred ? Your $.ajax calls are returning a promise, so, you can use it:

    var promisesArray = [];
    for (var dataIndex=0; dataIndex < data.length; dataIndex++) {
      promisesArray.push($.ajax({...}));
    }
     $.when.apply($, promisesArray).then(...);
    

    (inspired by this answer)

    You can use deferreds by taking this solution and passing it to a deferred if you want, but it's not neccesary:

    var x = $.Deferred(function(defer){  
        var promisesArray = [];
        for (var dataIndex=0; dataIndex < data.length; dataIndex++) {
          promisesArray.push($.ajax({...}));
        }
         $.when.apply($, promisesArray).done(function(data) { defer.resolve(data); });
    });
    return x.promise();
    

    (Not tested, I'm sorry)

提交回复
热议问题