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 杂项方法
设定两个延时时间是随机的定时器,分别用于解决(resolve)和拒绝(reject)延迟对象
deferred.promise() 函数返回 Deferred(延迟)的 Promise 对象。
注意:1. 方法允许一个异步函数阻止那些干涉其内部请求的进度(progress)或状态(status)的其它代码。
2. 只包含 deferred 对象的一组方法,包括:done(),then(),fail(),isResolved(), isRejected(), always(), 这些方法只能观察一个 deferred 的状态,而无法更改 deferred 对象的内在状态。
3. deferred.promise()也可以接受一个 target 参数,此时传入的 target 将被赋予 Promise 的方法,并作为结果返回,而不是创建一个新对象。
参数 | 描述 |
---|---|
target | Object类型 绑定 promise 方法的对象。 |
使用目标参数
使用目标参数,促进现有对象的Promise
jQuery 杂项方法
一个网站的内容分页是不可缺少的一部分,分页将冗长的文章或网页内容划分为多个页面,缩减单页面的阅读量,提升网站访问者的浏览...
jQuery error() 方法jQuery 事件方法实例 如果 image 元素遇到错误,把它替换为文本:$("img").error(function(){ $("img").repl...
jQuery undelegate() 方法jQuery 事件方法实例 通过 delegate() 方法从所有元素移除所有事件处理程序:$("body").undelegate(); ...
jQuery 是为事件处理特别设计的。 什么是事件? 页面对不同访问者的响应叫做事件。事件处理程序指的是当 HTML 中发生某些事件时...
CSS3 target-name 属性实例在新窗口中打开所有超链接:a{target-name:new;}浏览器支持任何主流浏览器都不支持target-name属性。...