jQuery deferred.promise() 方法
jQuery 教程
· 2019-03-29 21:59:35
实例
设定两个延时时间是随机的定时器,分别用于解决(resolve)和拒绝(reject)延迟对象
$(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);
}
);
})
定义和用法
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 ] )
| 参数 | 描述 |
|---|---|
| target | Object类型 绑定 promise 方法的对象。 |
点击查看所有 jQuery 教程 文章: https://www.codercto.com/courses/l/35.html
全景探秘游戏设计艺术
Jesse Schell / 吕阳、蒋韬、唐文 / 电子工业出版社 / 2010-6 / 69.00元
撬开你脑子里的那些困惑,让你重新认识游戏设计的真谛,人人都可以成为成功的游戏设计者!从更多的角度去审视你的游戏,从不完美的想法中跳脱出来,从枯燥的游戏设计理论中发现理论也可以这样好玩。本书主要内容包括:游戏的体验、构成游戏的元素、元素支撑的主题、游戏的改进、游戏机制、游戏中的角色、游戏设计团队、如何开发好的游戏、如何推销游戏、设计者的责任等。 本书适合任何游戏设计平台的游戏设计从业人员或即将......一起来看看 《全景探秘游戏设计艺术》 这本书的介绍吧!