我正在使用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?還是有一個完全不同的,但更好的解決這個問題?