jquery ajax请求时没有正确执行

时间:2018-03-05 12:37:28

标签: jquery ajax

我想开始8次ajax获取请求N次,我的代码就像:

var me = this;
urls.forEach(function(requests){
  $.when(requests.map(function(request){
    return $.ajax(request)
  })).done(function(data){
    me.result.push(data);
    //data is an array of 8 where every object is coming from those requests
  })
})

如果我在done函数回调中放置一个断点,那么每个对象都是一个空的ajax对象,但是如果我在成功函数被调用N次之后等待一点,我检查this.result数据那里是对的。为什么“完成”的成功太早了?

1 个答案:

答案 0 :(得分:1)

这只是一个未经考验的想法......难道它的工作有点简单...

var result = [];
var urls = ["http://url1.com","http://url2.com","http://url3.com"];

urls.forEach(function(str_url){
  $.ajax({
    url: str_url
  }).done(function(data){
    result.push(data);
    //data is an array of 8 where every object is coming from those requests
  });
});