3.9.3 为普通对象增加Defered接口
如果调用Deferred
对象的promise()
方法时传入了一个对象作为参数
,Deferred
对象将会为该参数对象
增加Deferred
接口,这样即可在该参数对象
上调用Deferred
对象的方法来添加回调函数。
以下为示例程序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <!DOCTYPE html> <html>
<head> <meta name="author" content="Yeeku.H.Lee(CrazyIt.org)" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Deferred对象 </title> </head>
<body> <script type="text/javascript" src="../jquery-3.1.1.js"> </script> <script type="text/javascript"> var object = { hello: function (name) { document.write(name + ",您好!<br/>"); } }; var defer = $.Deferred(); defer.promise(object); object.done(function (name) { object.hello(name); }).done(function (name) { document.write("执行完成了:" + name + "<br/>"); }); defer.resolve("孙悟空"); </script> </body>
</html>
|
该程序中①号粗体字代码调用promise(object)
方法为object
对象添加了Deferred
接口,接下来为该对象调用done()
方法绑定了两个回调函数,
程序在②号粗体字代码处将该Deferred
对象的状态改为resolved
,这将会激发object
对象上通过done()
方法添加的两个回调函数。