加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AsyncToken

发布时间:2020-12-17 01:19:49 所属栏目:安全 来源:网络整理
导读:在cairngorm框架的代理中, package business{import com.adobe.cairngorm.business.ServiceLocator;import mx.rpc.IResponder;import mx.rpc.AsyncTokenpublic class LoginDelegate{private var service:Object;private var responder:IResponder;public fu

在cairngorm框架的代理中,

?

发现trace(call)的结果是[object AsyncToken],于是就百度了一下,发现AsyncToken是一种异步的设计模式,对于AsyncToken基本的介绍转载了一篇文章如下:

?

什么是AsyncToken?官方文档是这样描述的:"这个类针对异步RPC操作提供了一个用来设置额外的或者令牌级数据的地方。它也允许一个 IResponder作为一个独立调用被附加。这个AsyncToken能够在ResultEvent和FaultEvent中用token属性来引用。" ????? 如果你对Flex中远程异步调用的本质不熟悉,肯定还是有点困惑的。我碰见过大量的对这个便捷类不熟悉的人,因此我试着来让它明朗一点。 ????? 无论何时从你的flex/AIR应用中使用多个外部调用中的一个,你都不会知道这些调用是否或者何时返回结果(或者错误),你也不会知道它们返回的顺序。即使你按照"RO1","RO2","RO3"的顺序调用远程对象,它们返回的顺序还是可能不一样。你可能也希望针对这些结果能有不同的处理。 ?????? 一种方式就是给每一个调用分配一个异步令牌(AsyncToken )来追踪这些调用。 ????? 不要这样来进行远程调用: ?????? myRO.myRemoteMethod(); ?????? 你应该这样: ?????? var token:AsyncToken=myRO.myRemoteMethod();(确保导入了mx.rpc.AsyncToken) ????? 现在就有了一个变量"token",代表这个单独的调用。像这样,你可以分配token自己的result和fault处理函数 token.addResponder(myResponderClass); ???? 这里myResponderClass类实现了IResponder.实现Iresponder简单的意味着定义了如下两个方法签名: ??? * public function result(data:Object):void ??? * public function fault(info:Object):void ????? 因此你可以对你的远程调用在调用时设置result和fault处理函数,而不用把硬编码放到你的远程对象,HTTPService或者WebService标签里。这也恰好就是Cairngorm和其他微体系结构的运行方式。 ?????? AsyncToken最后一点很酷的特性就是它是动态类。这意味着,当你进行远程调用时可以添加属性到token上,然后result/fault处理函数中读取这些属性。 ?????? 另外,在flex sdk3.4中有CallResponder,可以用CallResponder实例的token属性引用这个异步令牌。在flex sdk3.2中式没有这个类的,如果要用的话就只能自己写了,只要这个类继承自Iresponder接口就可以了 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yinchencome/archive/2009/12/25/5077811.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读