jQuery Deferred对象是jQuery提供的一种异步编程的解决方案,它可以帮助我们处理异步任务,使得我们可以在异步任务完成后执行一些操作。
Deferred对象有三个状态:未完成(pending)、已完成(resolved)和已失败(rejected)。当一个Deferred对象处于未完成状态时,可以通过调用resolve()方法将其变为已完成状态;当一个Deferred对象处于未完成状态时,可以通过调用reject()方法将其变为已失败状态。
Deferred对象还提供了一些非常有用的方法来帮助我们处理异步任务。其中包括done()、fail()、always()和then()方法。done()方法用于在异步任务执行成功后执行回调函数;fail()方法用于在异步任务执行失败后执行回调函数;always()方法用于在异步任务无论是否执行成功都会执行回调函数;then()方法则是上面三个方法的集合体。
// 定义一个deferred对象 var deferred = $.Deferred(); // 在异步操作完成后将deferred对象变为resolved deferred.resolve(); // 在deferred对象变为resolved之后执行回调函数 deferred.done(function(){ console.log('done'); });
jQuery 杂项方法
deferred.rejectWith() 函数用于拒绝延迟对象,并根据给定的 context 和 args 参数调用任何 failCallbacks 回调函数。
注意:1. 通常只有延迟对象的创建者才可以调用该方法。你可以通过调用 deferred.promise(),返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
2. 当延迟对象被 rejected 时,任何通过 deferred.then 或 deferred.fail 添加的 failCallbacks,都会被调用。回调函数按它们被添加时的顺序执行。传递给 deferred.reject() 的 args 参数,会传给每个回调函数。当延迟对象进入 rejected 状态后,任何 failCallbacks 被添加时,就会被立刻执行,并带上传入给 .reject() 的参数。
参数 | 描述 |
---|---|
context | Object类型 作为 this对象传递给失败回调函数(failCallbacks ) |
args | Array类型 传递一个可选的参数数组给失败回调函数(failCallbacks ) |
jQuery 杂项方法
jQuery.parseXML()方法jQuery 杂项方法实例创建一个jQuery对象使用一个XML字符串并得到标题节点的值。 p id=someElement/pp id=a...
jQuery $.proxy() 方法 jQuery 事件方法实例强制执行 objPerson 内的 test 函数的上下文:$(button).click($.proxy(objPerson,te...
jQuery ValidatejQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满...
jQuery keydown() 方法jQuery 事件方法实例 当键盘键被按下时,设置 input 字段的背景颜色:$("input").keydown(function(){ $("...
jQuery $.proxy() 方法jQuery 事件方法实例 强制执行 objPerson 内的 "test" 函数的上下文:$("button").click($.proxy(objPerso...