jQuery Deferred 对象是一个强大的工具,它可以帮助我们更好地管理异步代码。它可以让我们更容易地处理异步函数的返回值,并且可以让我们更好地处理多个异步函数之间的依赖关系。
jQuery Deferred 对象有三种状态:未完成(pending)、已完成(resolved)和已拒绝(rejected)。当一个 Deferred 对象处于 pending 状态时,它可以通过 resolve 方法将其切换到 resolved 状态,也可以通过 reject 方法将其切换到 rejected 状态。
Deferred 对象还有一些非常有用的方法来处理异步函数的返回值。例如,done 方法用于处理 resolve 状态的 Deferred 对象的返回值,而 fail 方法用于处理 rejected 状态的 Deferred 对象的返回值。
var dfd = $.Deferred(); // Create a new deferred object dfd.done(function(data) { // Register done callback console.log('Done: ' + data); // This will be called when the deferred is resolved }); dfd.fail(function(data) { // Register fail callback console.log('Fail: ' + data); // This will be called when the deferred is rejected }); dfd.resolve('Hello World!'); // Resolve the deferred object with some data dfd.reject('Something went wrong!'); // Reject the deferred object with some data
jQuery 杂项方法
deferred.notify() 函数用于给定上下文和参数调用正在延迟对象上进行的回调函数( progressCallbacks )。
注意:1. 通常,只有延迟对象(Deferred)的创建者才能调用此方法。
2. 你可以通过调用 deferred.promise() 返回一个受限的 Promise 对象,来阻止其它代码改变延迟对象的状态或报告它的状态。
3. 当 deferred.notifyWith 被调用时, 任何 progressCallbacks 可以通过访问 deferred.then 或者 deferred.progress 来添加。回调依照他们添加时的顺序执行。通过 .notifyWith() 传递参数给每个回调函数,当迟延对象已经被 resolved 或被 rejected 之后,再调用任何 .notifyWith() (或者添加 progressCallbacks) 都会被忽略。
参数 | 描述 |
---|---|
context | Object类型 作为this对象传递给进行中的回调 |
args | Object类型 可选参数,传递给进行中的回调 |
jQuery 杂项方法
jQuery.holdReady()方法 jQuery 事件方法实例HTML元素单击右键触发事件 button id=first点击测试弹出/buttonbutton id=second解...
jQuery.selector 属性 jQuery 选择器定义和用法selector属性用于返回获取当前jQuery对象时传给jQuery(selector, context)函数的...
jQuery 选择器 (ancestor descendant) jQuery 选择器定义和用法jQuery的ancestor descendant选择器(后代选择器)用于匹配ancestor...
为了帮助广大学习者,做到学以致用,我们为大家准备了大量的jQuery编程实战题,通过这些实战题,您可以一边学习一边操作,来达到...
jQuery mouseleave() 方法jQuery 事件方法实例 当鼠标指针离开 p 元素时,设置背景色为灰色:$("p").mouseleave(function(){ $("...