gpt4 book ai didi

actionscript-3 - 试图理解 Flex/Actionscript 中的 AsyncToken

转载 作者:行者123 更新时间:2023-12-02 07:15:48 25 4
gpt4 key购买 nike

我试图了解 AsyncToken 在 actionscript 中的工作方式。如何调用远程服务并确保特定参数在结果或故障事件函数中可用?我认为这是我想要使用的异步功能。

下面的代码有望解释我正在尝试做的事情。请随意修改代码块作为您的解释。

谢谢。

public function testSerivceCall(data:Object, callBackCommand:String):void
{
// Assume callBackCommand == "FOO";
// How can I pass in callBackCommand as a parameter to the result or fault events?
// How do I create an async token here?

var remoteObject:RemoteObject;
remoteObject = new RemoteObject();
remoteObject.destination = "zend";
remoteObject.source = "MyService";
remoteObject.endpoint = "http://example.com/service";
remoteObject.test.addEventListener(ResultEvent.RESULT, _handleTestResult);
remoteObject.test.addEventListener(FaultEvent.FAULT, _handleTestFault);
remoteObject.test(data);
}

private function _handleTestResult( event:ResultEvent ) : void
{
// How do I get the async token value?
// How can I get the value of callBackCommand in this code block?

if (callBackCommand == "FOO")
{
// do something related to "FOO"
}
else
{
// do something else with the result event
}


}

private function _handleTestFault( event:FaultEvent ) : void
{
// How do I get the async token value?
// How can I get the value of callBackCommand in this code block?
}

使这个问题更清楚的编辑:

假设我在代码中的某处调用了以下方法:

testSerivceCall(personObject, "LoginCommand");

如何访问 _handleTestResult 功能 block 中的实际字符串“LoginCommand”?

我之所以要这样做,是因为我想动态回调某些函数,并将结果数据交给我在进行服务调用时提前知道的特定命令。

我只是想花时间摸索一下 AsyncToken 的语法和功能。

最佳答案

我什至不需要闭包。我在下面添加了一个我在外部调用的类。

调用是这样的:

 public class MyClass
{
...
var adminServerRO:AdminServerRO = new AdminServerRO();
adminServerRO.testSerivceCall("FOO",cptyId);
}

public class AdminServerRO
{

private function extResult( event:ResultEvent, token:Object ) : void
{
//the token is now accessed from the paremeter
var tmp:String = "in here";
}

private function extFault( event:FaultEvent ) : void
{
var tmp:String = "in here";
}


public function testSerivceCall(callBackCommand:String, cptyId:String):void
{
var remoteObject:RemoteObject = new RemoteObject();
remoteObject.destination = "adminServer";
var token:AsyncToken = remoteObject.getCounterpartyLimitMonitorItemNode(cptyId);
token.addResponder(new AsyncResponder(extResult,extFault,cptyId));
}

关于actionscript-3 - 试图理解 Flex/Actionscript 中的 AsyncToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com