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]



Reply via email to