首页 > jQuery ajax的连续调用问题

jQuery ajax的连续调用问题

直接上代码:

$.ajax({
  url: '/a.do',
  type: 'post',
  data: {
     foo: 'bar'
  }
}).done(function(res) {
  return $.ajax({
    url: '/b.do',
    type: 'post',
    data: {
      foo: res.bar
    }
  })
}).done(function(res) {
  console.log(res); //undefined
})

第二个ajax请求是依赖第一个ajax请求结果的,现在想使用ajax自带的deferred,发现第二个done里面的内容根本就不会去等待第二个ajax请求完,我推测了一下应该是因为这一整个deferred链条的状态在第一个done的时候就变成了resloved,所以压根就不管第二个异步ajax了。

所以想请教下,假如我不想用ES6 的promise,而就借助jQuery自带的deferred,应该如何实现如上代码。


判断一下返回值,如果有了再执行第二个ajax


把第三个done写到第二个done里面的ajax后面看看

【热门文章】
【热门文章】