我的任务是为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
}发布于 2011-01-13 20:38:19
有两件事很突出:
您可能会发现这两件事很有用,这取决于您正在处理的数据类型……此外,可能还有比这更多的东西。
发布于 2011-01-13 23:20:22
对于更复杂的应用程序,AsyncToken允许您更灵活地使用哪些函数/闭包/方法来接收数据或处理错误。
发布于 2017-02-10 06:49:31
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;
}https://stackoverflow.com/questions/4663090
复制相似问题