文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Deferred对象
jQuery提供一个静态方法Deferred
,返回一个可供链式调回调函数队列。为的是解决异步编程问题,遵循Common Promise/A规范。jQuery在1.5版本中引入了这个特性,并为其重写了Ajax模块,可见其重要性。
它解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口。
deferred对象的方法
- $.Deferred() 生成一个deferred对象
- deferred.done() 指定操作成功时的回调函数
- deferred.fail() 指定操作失败时的回调函数
- deferred.promise() 没有参数时,返回一个新的deferred对象,该对象的运行状态无法被改变;接受参数时,作用为在参数对象上部署deferred接口。
- deferred.resolve() 手动改变deferred对象的运行状态为"已完成",从而立即触发done()方法。
- deferred.reject() 这个方法与deferred.resolve()正好相反,调用后将deferred对象的运行状态变为"已失败",从而立即触发fail()方法。
- $.when() 为多个操作指定回调函数
- deferred.then(): 把done和fail结合写在一起了,传递两个回调函数即可。
- deferred.always(): 这个方法也是用来指定回调函数的,它的作用是,不管调用的是deferred.resolve()还是deferred.reject(),最后总是执行。
参考资料
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论