2011-07-26 57 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

當我想將數據存儲在一個異步莊園我把它放在一個陣列中,並使一個功能,將「流行」元素當我發送它。
該函數將在完成時和錯誤事件中調用。
是的,我知道服務器和數據丟失可能存在問題,但是很好。這也可以處理
然而,事件總是會觸發,它可能不是一個完整的事件被觸發,但可能是一個錯誤事件。
一旦數組爲空,該功能就完成了。