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 <http://www.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