ASyncToken有什么意义?

我的任务是为HTML5 WebSocket服务器创建一个AS3客户端。 我最初的想法是使用AS3中的一些现有类来创建这个服务,即尝试模拟RemoteObject,但是看了之后,我真的看不到ASyncToken的意义! 我理解令牌被用作服务器调用及其响应之间的某种形式的引用,但我无法看到它在何处/如何成为唯一标识符。 以这段简短的代码为例:
 var token:AsyncToken = myService.myCall(params);
 news.addResponder(new Responder(onResult, onFault));

 function onResult(event:ResultEvent) {
   // do stuff
 }

 function onFault(event:FaultEvent) {
   // do stuff
 }
显然,令牌有自己的响应者,服务可以保留令牌消息的字典,但如果我要两次调用myService.myCall,在响应之前,服务是否会知道哪个令牌与响应相关联?服务是否创建唯一标识符以将响应关联回令牌,或者在这些情况下是否会失败? 如果它在内部存储了自己唯一的调用标识符,那么如何完全跳过令牌并在响应参数中传递响应者呢?例如。
 myResponder = new Responder(onResult, onFault);
 myService.myCall(myIResponder, <additional params>);

 function onResult(event:ResultEvent) {
   // do stuff
 }

 function onFault(event:FaultEvent) {
   // do stuff
 }
    
已邀请:
两件事突出: 您可以为AsyncToken分配多个响应者; 您可以绑定AsyncToken的结果。 根据您正在使用的数据类型,您可能会发现这两个有用的东西......此外可能还有更多内容。     
对于更复杂的应用程序,AsyncToken使您可以更灵活地接收数据或处理错误的函数/闭包/方法。     
public function mssqlQuery(sql:String,fid:String) : void {
    var http:HTTPService = new HTTPService;
    var parm:Object = new Object;
    parm.fas_sql = sql;
    parm.fas_db = mssql_db; 
    http.url = mssql_url+"?irand="+Math.random();
    http.showBusyCursor = true;
    http.request = sql;
    http.addEventListener(ResultEvent.RESULT, mssqlResult);
    http.addEventListener(FaultEvent.FAULT, mssqlFault);
    http.method = "POST";
    sqlToken = http.send(parm);
    sqlToken.param = fid;
}
    

要回复问题请先登录注册