我在整个 JavaScript 代码中都注意到 AJAX 请求通常使用以下 jQuery 2.x 模式执行:
$.ajax({
...
})
.done(function (data) {
...
});
在done
方法中找到的代码将在收到响应后执行。
在阅读了 jQuery 3.x 的 beta 版本说明 ( https://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/ ) 后,我注意到以下声明:
删除了 jQuery.ajax 中的特殊情况 Deferred 方法
jqXHR 对象是一个 Promise,但也有额外的方法,如 .abort() 以便您可以在发出请求后停止请求。
随着用户越来越多地将 Promise 模式用于 AJAX 等异步工作,为 jQuery.ajax 返回的 Promise 提供特殊情况的想法越来越糟糕。
成功、错误、完成、完成、失败、总是
请注意,这对同名的回调完全没有任何影响,它们继续存在并且不被弃用。这只会影响 Promise 方法!
如果我没看错,这似乎表明我在返回响应后执行 JavaScript 代码的方法将不再受支持。是这样吗,还是我错过了什么?另外,我是否正确理解success
和error
回调函数现在是执行此类任务的首选方法?
任何澄清在这里将不胜感激!