Flex AsyncToken 异步处理

包 mx.rpc
类 public dynamic class AsyncToken
继承 AsyncToken EventDispatcher Object

该类为异步 RPC 操作提供设置额外数据或标记级别数据的位置。它也允许为单独的调用附加 IResponder。可从 token 属性的 ResultEvent 和 FaultEvent 中引用 AsyncToken。

[url]http://livedocs.adobe.com/flex/3_cn/langref/mx/rpc/AsyncToken.html[/url]

在flex/AIR应用中使用多个外部调用,程序无法监听这些调用是否返回或何时返回结果(或者错误),也监听不到调用远程对象数据反回的顺序。你可能希望针对这些结果能有不同的处理。
一种方式就是给每一个调用分配一个异步令牌(AsyncToken )来追踪这些调用。

不要这样来进行远程调用:
myRO.myRemoteMethod();

你应该这样:
var token:AsyncToken=myRO.myRemoteMethod();//确保导入了mx.rpc.AsyncToken


现在就有了一个变量"token",代表这个单独的调用。你可以分配token自己的result和fault处理函数:
token.addResponder(myResponderClass);

这里myResponderClass类实现了IResponder.
实现IResponder简单的意味着定义了如下两个方法签名:
[quote]public function result(data:Object):void
public function fault(info:Object):void[/quote]
因此你可以对程序的远程调用在调用时设置result和fault处理函数,而不用把硬编码放到你的远程对象,HTTPService或者WebService标签里。这也恰好就是Cairngorm和其他微体系结构的运行方式。

AsyncToken最后一点很酷的特性就是它是动态类。这意味着,当你进行远程调用时可以添加属性到token上,然后result/fault处理函数中读取这些属性。

另外,在flex sdk3.4中有CallResponder,可以用CallResponder实例的token属性引用这个异步令牌。在flex sdk3.2中式没有这个类的,如果要用的话就只能自己写了,只要这个类继承自IResponder接口就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值