Мне было интересно, есть ли у нас собственный или общий способ синхронизации нескольких результатов от асинхронных вызовов HttpService в Adobe Flex. Другими словами, мне нужно восстановить некоторые данные с моего сервера и выполнить функцию после того, как я восстановил все данные из этих различных функций.
Вот пример:
private var mObj01 : Object = null;
private var mObj02 : Object = null;
private var mObj03 : Object = null;
public function TryLoadSynchronousFunction() : void
{
if( mObj01 != null && mObj02 != null && mObj03 != null )
DoSynchronizedStuff();
}
public function GetObj01( event : ResultEvent ) : void
{
mObj01 = event.result as Object;
TryLoadSynchronousFunction();
}
public function GetObj02( event : ResultEvent ) : void
{
mObj02 = event.result as Object;
TryLoadSynchronousFunction();
}
public function GetObj03( event : ResultEvent ) : void
{
mObj03 = event.result as Object;
TryLoadSynchronousFunction();
}
public function StartAsynchronous() : void
{
myCall01.token = httpObj.Get01();
myCall02.token = httpObj.Get02();
myCall03.token = httpObj.Get03();
}
А на <fx:Declarations>
я бы имел:
<mx:CallResponder id="myCall01" result="GetObj01(event)" />
<mx:CallResponder id="myCall02" result="GetObj02(event)" />
<mx:CallResponder id="myCall03" result="GetObj03(event)" />
Есть ли лучший подход к такой ситуации?