返回介绍

Deferred对象

发布于 2024-06-02 22:07:05 字数 3587 浏览 0 评论 0 收藏 0

jQuery提供一个静态方法Deferred,返回一个可供链式调回调函数队列。为的是解决异步编程问题,遵循Common Promise/A规范。jQuery在1.5版本中引入了这个特性,并为其重写了Ajax模块,可见其重要性。

它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。

deferred对象的方法

  1. $.Deferred() 生成一个deferred对象
  2. deferred.done() 指定操作成功时的回调函数
  3. deferred.fail() 指定操作失败时的回调函数
  4. deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变;接受参数时,作用为在参数对象上部署deferred接口。
  5. deferred.resolve() 手动改变deferred对象的运行状态为"已完成",从而立即触发done()方法。
  6. deferred.reject() 这个方法与deferred.resolve()正好相反,调用后将deferred对象的运行状态变为"已失败",从而立即触发fail()方法。
  7. $.when() 为多个操作指定回调函数
  8. deferred.then(): 把done和fail结合写在一起了,传递两个回调函数即可。
  9. deferred.always(): 这个方法也是用来指定回调函数的,它的作用是,不管调用的是deferred.resolve()还是deferred.reject(),最后总是执行。

参考资料

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文