$.when promise 对象不工作

$.when promise object not working

我正在发出并发 AJAX 请求,但在尝试等待所有调用返回时遇到问题,done() 中的 console.log 将结果显示为空数组。 $.when 没有等待请​​求完成。

 var result = []
  var promise = []
  for (i=0;i < array.length;i++)
  {
    _url = "http://example.com"
      var req = $.ajax(
        {
          type: "GET",
          url: _url,
          success: function(request) { result.push(request)         
          } ,
          error: function(request) {  result.push("ERROR BROTHA")              
        }
        });
      promise.push(req)
  }

  $.when(promise).done(function(){
    console.log(result);
  });

你需要展开数组。 Docs.

$.when.apply($, promise).done(...);

来自文档

jQuery.when( deferreds )

deferreds Zero or more Deferred objects, or plain JavaScript objects.