2011-07-26 22 views
0

我正在使用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?还是有一个完全不同的,但更好的解决这个问题?

回答

0

当我想将数据存储在一个异步庄园我把它放在一个阵列中,并使一个功能,将“流行”元素当我发送它。
该函数将在完成时和错误事件中调用。
是的,我知道服务器和数据丢失可能存在问题,但是很好。这也可以处理
然而,事件总是会触发,它可能不是一个完整的事件被触发,但可能是一个错误事件。
一旦数组为空,该功能就完成了。