我正在使用Flex和Actionscript 3以及Webservices,rpc和callResponder。我想是可以的,例如,说:Actionscript 3:如何执行多个异步Web服务调用请求
loadData1(); // Loads webservice data 1
loadData2(); // Loads webservice data 2
loadData3(); // Loads webservice data 3
然而,ActionScript 3的工作原理与异步事件,所以在每次调用需要等待的ResultEvent在完成时触发。所以,我可能会在每次事件完成时都要做下一个请求。但是,恐怕可能会出现线程问题,有些事件可能根本不会发生。我不认为我做解释的一个很好的工作,所以我会尽量表现出一些代码:
private var service:Service1;
var cp:CallResponder = new CallResponder();
public function Webservice()
{
cp.addEventListener(ResultEvent.RESULT, webcalldone);
service = new Service1();
}
public function doWebserviceCall()
{
// Check if already doing call, otherwise do this:
cp.token = service.WebserviceTest_1("test");
}
protected function webcalldone(event:ResultEvent):void
{
// Get the result
var result:String = cp.lastResult as String;
// Check if other calls need to be done, do those
}
现在,我可以ofcourse拯救行动的ArrayList,但其说,addToArrayList并检查是否有其他电话可用不会彼此混淆,或只是错过彼此,从而停止执行?有没有像一个不稳定的Arraylist?还是有一个完全不同的,但更好的解决这个问题?