我在整个JavaScript代码中都注意到,AJAX请求通常使用以下jQuery 2.x模式执行:
$.ajax({
...
})
.done(function (data) {
...
});
在done
方法中找到的代码将在收到响应后执行。
在阅读jQuery 3.x(https://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/)的beta版发行说明后,我注意到以下声明:
在jQuery.ajax
中删除了特殊情况的Deferred方法jqXHR对象是一个Promise,但也有一些额外的方法,比如.abort(),这样你就可以在请求完成后停止它。
随着用户越来越多地接受像AJAX这样的异步工作的Promise模式,jQuery.ajax返回的Promise特殊情况的想法越来越糟糕。
成功,错误,完成,完成,失败,永远
请注意,这对同名的回调完全没有任何影响,这些回调继续存在且不会被弃用。这只会影响Promise方法!
如果我正确读取此内容,似乎表明我的方法在返回响应后执行JavaScript代码将不再受支持。是这样的,还是我错过了什么?另外,我是否理解success
和error
回调函数现在是执行此类任务的首选方法?
非常感谢此处的任何澄清!
答案 0 :(得分:2)
看看测试版代码,我可以确认
done
fail
always
progress
state
pipe
then
和catch
方法之外,还继续支持方法。
在jqXHR对象(也是承诺)上,方法success
,error
,complete
(从1.8开始弃用)have been removed。