apache-flex ASyncToken的意义是什么?

rwqw0loc  于 2022-11-01  发布在  Apache
关注(0)|答案(3)|浏览(163)

我的任务是为HTML5 WebSocket服务器创建一个AS 3客户端。
我最初的想法是使用AS 3中的一些现有类来创建此服务,即尝试模拟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
 }
2ul0zpep

2ul0zpep1#

有两件事很突出:
1.您可以为AsyncToken分配多个响应者;
1.您可以绑定AsyncToken的结果。
你可能会发现这两个东西很有用,这取决于你所处理的数据类型......而且可能还有比这更重要的东西。

h6my8fg2

h6my8fg22#

对于更复杂的应用程序,AsyncToken让您在使用哪些函数/闭包/方法来接收数据或处理错误方面有更大的灵活性。

jhdbpxl9

jhdbpxl93#

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;
}

相关问题