I have some back-to-back web service calls that don't seem to work
when I call them as:

ws.GetMusicians();
ws.GetInstruments();
ws.GetProducts();

but if I call them in a forced-sequential pattern, they all work fine.
(The web server is a .NET service that returns ArrayCollections).

My mxml file calls my GAWebService tier:
    var ws = new GAWebService();

The GAWebService tier handles the transaction with the web service:

public function GetInstruments( ):void {
  ws.addEventListener( ResultEvent.RESULT, instrumentsHandler );
  var callToken:AsyncToken = ws.GetInstruments();
  callToken.marker = "GetInstrumentsCall";
}

private function instrumentsHandler( event:ResultEvent ):void {
  ws.removeEventListener( ResultEvent.RESULT, instrumentsHandler );
  var callToken:AsynchToken = event.token;
  var resultCollection:ArrayCollection = (event.result AS
ArrayCollection);
  switch( callToken.toString() ) {
     case "GetInstrumentsCall":
        GADataModel.getInstance().Instruments = resultCollection;
        break;
     etc.
  }
}

Again, if I force a sequence wherein the handler of one call makes the
next webservice call in the series, I get all of the results back, but
if I leave it to the "asynch-ness" of the webservice, I only get a
couple of the calls completed.

Does the Flex WebService queue up the calls or do I have to write some
sort of call queue class in order to manage the asynchronous traffic?

Reply via email to