求解jQuery 的 $.ajax()的返回值问题 20
console.log("-----------------111111111----------------")letdat=$.ajax({url:str,data:...
console.log("-----------------111111111----------------") let dat=$.ajax({url:str,data:obj,async:true,success:function(){ console.log("----------------222222222----------------") }}); console.log("------------------------------------------") console.log(dat); console.log("-----------------333333333----------------") console.log($.Deferred());求解1:看图一好像执行顺序没有什么问题,但是看图2,$.ajax的返回值dat已经先于回调函数,把参数都拿到了???不是异步的吗???求解2:$.ajax,$.post 返回的对象究竟是不是$.Deferred())对象?
展开
1个回答
展开全部
1、$.ajax默认使用异步也就是async:true的方式调用ajax请求数据。这种方式会在ajax回调完成之前执行后面的代码,如果你要等ajax回调完成后再执行后面的代码,可以设置成async:false。
2、$.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象;如果高于1.5.0版本,返回的是deferred对象。
2、$.ajax()操作完成后,如果使用的是低于1.5.0版本的jQuery,返回的是XHR对象;如果高于1.5.0版本,返回的是deferred对象。
追问
我的就是异步啊,否则222会先于333执行,但是它的返回对象dat已经提前拿到参数了
我的就是异步啊,否则222会先于333执行,但是它的返回对象dat已经提前拿到参数了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询