小白教程
所有教程
关于
Search
172.71.254.7
172.71.254.7
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Misc deferred promise”的源代码
本页内容
上一节:
Misc_deferred_progress
下一节:
Misc_deferred_reject
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:deferred.promise()}}[[Category:jquery ref misc|67]] = jQuery deferred.promise() 方法 = [[jquery ref misc|jQuery 杂项方法]] 设定两个延时时间是随机的定时器,分别用于解决(resolve)和拒绝(reject)延迟对象 <sample title="" desc="" lang="html" hererun="1"> $(function () { function asyncEvent(){ var dfd = new jQuery.Deferred(); // 在一个随机的时间间隔之后 Resolve (解决状态) setTimeout(function(){ dfd.resolve("欢呼"); }, Math.floor(400+Math.random()*2000)); // 在一个随机的时间间隔之后 reject (拒绝状态) setTimeout(function(){ dfd.reject("对不起"); }, Math.floor(400+Math.random()*2000)); // 每半秒显示一个"working..."消息 setTimeout(function working(){ if ( dfd.state() === "pending" ) { dfd.notify("working... "); setTimeout(working, 500); } }, 1); // 返回 Promise 对象,调用者不能改变延迟对象 return dfd.promise(); } // 为异步函数附加一个done, fail, 和 progress 处理程序 $.when( asyncEvent() ).then( function(status){ alert( status+', 事情进展顺利' ); }, function(status){ alert( status+', 这次你失败了' ); }, function(status){ $("body").append(status); } ); }) </sample> <run name=""> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>小白教程(xiaobai.wang)</title> <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script> </head> <body> <script> $(function () { function asyncEvent(){ var dfd = new jQuery.Deferred(); // 在一个随机的时间间隔之后 Resolve (解决状态) setTimeout(function(){ dfd.resolve("欢呼"); }, Math.floor(400+Math.random()*2000)); // 在一个随机的时间间隔之后 reject (拒绝状态) setTimeout(function(){ dfd.reject("对不起"); }, Math.floor(400+Math.random()*2000)); // 每半秒显示一个"working..."消息 setTimeout(function working(){ if ( dfd.state() === "pending" ) { dfd.notify("working... "); setTimeout(working, 500); } }, 1); // 返回 Promise 对象,调用者不能改变延迟对象 return dfd.promise(); } // 为异步函数附加一个done, fail, 和 progress 处理程序 $.when( asyncEvent() ).then( function(status){ alert( status+', 事情进展顺利' ); }, function(status){ alert( status+', 这次你失败了' ); }, function(status){ $("body").append(status); } ); }) </script> </body> </html> </run> == 定义和用法 == deferred.promise() 函数返回 Deferred(延迟)的 Promise 对象。 '''注意:'''1. 方法允许一个异步函数阻止那些干涉其内部请求的进度(progress)或状态(status)的其它代码。 2. 只包含 deferred 对象的一组方法,包括:done(),then(),fail(),isResolved(), isRejected(), always(), 这些方法只能观察一个 deferred 的状态,而无法更改 deferred 对象的内在状态。 3. deferred.promise()也可以接受一个 target 参数,此时传入的 target 将被赋予 Promise 的方法,并作为结果返回,而不是创建一个新对象。 == 语法 == deferred.promise( [target ] ) {| class="table table-striped table-hover" ! 参数 ! 描述 |- | target | Object类型 绑定 promise 方法的对象。 |} == 更多实例 == [[try.php?filename=tryjquery_deferred_promise1|使用目标参数]] 使用目标参数,促进现有对象的Promise [[jquery ref misc|jQuery 杂项方法]]
返回至“
Misc deferred promise
”。
上一节:
Misc_deferred_progress
下一节:
Misc_deferred_reject