Javascript 不推荐的jQuery回调-澄清?

Javascript 不推荐的jQuery回调-澄清?,javascript,jquery,Javascript,Jquery,-jqXHR由$.ajax()返回的对象实现Promise接口 还声明jqXHR.done,jqXHR.fail,jqXHR.always分别是不推荐的成功/失败/完成的替代结构 弃用通知:jqXHR.success()、jqXHR.error()和 从jQuery 1.8开始,jqXHR.complete()回调已被弃用。准备 要最终删除它们,请使用jqXHR.done()、jqXHR.fail(), 而jqXHR.always()则相反 好的。(很久以前就知道了) 但是后来我看到了async

-
jqXHR
$.ajax()返回的对象实现
Promise
接口

还声明
jqXHR.done
jqXHR.fail
jqXHR.always
分别是不推荐的
成功
/
失败
/
完成
的替代结构

弃用通知:jqXHR.success()、jqXHR.error()和 从jQuery 1.8开始,jqXHR.complete()回调已被弃用。准备 要最终删除它们,请使用jqXHR.done()、jqXHR.fail(), 而jqXHR.always()则相反

好的。(很久以前就知道了)

但是后来我看到了
async
doc:

async:从jQuery 1.8开始,将
async:false
jqXHR($.Deferred)
一起使用是不正确的 不赞成;您必须使用success/error/complete回调选项 而不是jqXHR对象的相应方法,例如
jqXHR.done()

这里的措辞非常不清楚(imho)-因此,我不理解它的含义

问题:

是否有任何情况仍然我需要使用
成功/错误/完成
?怎么会?他们不赞成

nb,为什么这么乱?他们改变和删除方法,然后像每个版本一样更换(!例如管道)

结论: 不推荐使用的是同时使用async:false和jqXHR($.Deferred)API(结合使用)

$.ajax()
success/error/complete
回调选项未被弃用

jqXHR.success()
jqXHR.error()
jqXHR.complete()
回调已弃用

当使用异步AJAX请求时(
async:true
),您可以使用
success/error/complete
回调选项
$.AJAX()
jqXHR.done
jqXHR.fail
jqXHR.always

但是当使用同步AJAX请求时(
async:false
), 不应使用延迟API(
jqXHR.done
jqXHR.fail
jqXHR.always
),
但是使用
success/error/complete
回调选项
$.ajax()

逻辑结论:
async:false
已被弃用。@dystroy真正的问题是
success
在声明为
已弃用时仍在使用,…@dystroy
async:false
未被弃用,但是
在jqXHR中使用async:false
是@xdazz这只是一个玩笑。。。有一点提示,这个可怕的东西早就应该被删除了。^^@dystroy非常同意:)是不是
async:false
被弃用了?@Satpal否,
在jqXHR($.Deferred)
中使用async:false是@xdazz so
$.ajax(…async:false…)
被弃用了,而
$.ajax(…async:false…,success:function(){…})
不是…对吗?@RoyiNamir是的,就是这样:)