Nice touch Josh, like it, props!
On 12 Aug 2008, at 13:07, Josh McDonald wrote:
This is pretty ordinary, and I plan on re-vamping it, but we're
planning on open sourcing most of this stuff soon, so you might as
well have a look and you can use it as a base for something better: http://www.gfunk007.com/flex/ChainLoader.as
Usage example:
new ChainLoader(Application.application.spinner,
"begin").then(
Application.application, "showLoading").then(
Singletons.services.returnCentreDao,
"getReturnCentre").thenOnSuccess(
Singletons.services.vehiclesDao,
"getVehiclesPending").thenOnSuccess(
Singletons.services.vehiclesDao,
"getVehiclesInStock").thenOnSuccess(
Singletons.services.vehiclesDao,
"getVehiclesInRepair").thenOnSuccess(
Singletons.services.tenderDao,
"getAllTenders").thenOnSuccess(
this, "selectDefaultTender").then(
this, "getTenderVehicles").thenOnSuccess(
_pollTimer, "start").then(
this, "selectReturnCentreCompleted").then(
Application.application, "hideLoading").then(
Application.application.spinner, "end").go();
Like I said, it's rough don't bother telling me the myriad ways it can
be better, I know :)
-Josh
On Tue, Aug 12, 2008 at 9:46 PM, Simon Bailey
<[EMAIL PROTECTED]>wrote:
How about defining and array with all the method names and every time
a method is returned it removes its method name from the array. The
method to remove each item from the array would check the array length
each times its called and when the array.length == 0 then call your
method x?
Cheers,
Simon
newtriks.com
On 12 Aug 2008, at 12:37, nwebb wrote:
Hi, hoping for some help on this...
Problem:
I am making multiple asynchronous calls to the server and I want to
ensure I have the data back from all the calls before calling method x.
I don't want to daisy-chain the calls (i.e.having to wait until
service#1 reurns data before calling service#2 and so on).
I have a solution which will suffice* but I'm sure there must be a
tried and tested way of handling this kind of scenario - perhaps a
design pattern(?).
-----------------------------------
* my current solution is to declare an ArrayCollection and listen to
its CollectionEvent.COLLECTION_CHANGE event.
In each onResult() method I set itemsLoaded.addItem(true); and
similarly in each onFault() method I set itemsLoaded.addItem(false);
Each time I add the boolean value to the collection, the change-event
handler is called. Inside the change handler I check to see whether
the collection length is equal to the number of results I'm expecting.
If it is, I loop through the collection and check if all the values
are true or not.
--
"Therefore, send not to know For whom the bell tolls. It tolls for
thee."
:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED]