Hi all, I'm having some problems with the asynchronous in Flex using
RemoteObject to communicate with the Java side to get some information.


    * First of all, let me explain what i'm doing:
I have developed a search component to allow the user to find stored
documents by name, content or both in some folders. The component has 2
panels:



    1. Filter: The properties to filter are a keyword and a list of
folders

    2. Result: Per each folder selected by the user, will display a
datagrid with the documents stored in.
When the user fill the filter and click the Search button, automatically
i send one request to the Java side per each selected folder (if the
user has selected 3 folders, will send 3 requests to the server using
RemoteObject)

I'm retrieving 3 ResultEvents, but in randomly order, and sometimes the
result of the search are not correct because of this. The result of each
responses is the dataprovider of the different DataGrids.

Here i put some of my code (in my example, this delegate class will be
instantiated3 times, one per selected folder)

public class SearchDelegate {
public var remoteObject:RemoteObject = new RemoteObject();

public function findDocuments(urlEndpoint:String, keyword:String,
folder:String):void {
             try {
                 remoteObject.endpoint = urlEndpoint;
                remoteObject.destination = "searchService";
                 remoteObject.addEventListener(ResultEvent.RESULT,
onFindDocumentsSuccess);
                 remoteObject.findBasic(keyword, folder);
             } catch (error:Error) {
                
ErrorMgr.getInstance().raiseError(ErrorMgr.APPLICATION_ERROR, error);
             }
}

public function onFindDocumentsSuccess(event:ResultEvent):void {
            remoteObject.removeEventListener(ResultEvent.RESULT,
onFindDocumentsSuccess);
             var documents:ArrayCollection = event.result;
             dispatcher.dispatchEvent(new SuccessEvent(ticket,
SuccessEvent.SUCCESS, false, true, documents));
}
}

    * My question is: How can i solved this problem? Is any way to match
the different requests with the real responses. In my case looks like
the responses are overwritten between them (for example: i should have 3
different results, but in many cases i have only 2 results, because one
response has overwritten one of the others). I know i can do it
synchronous, but in my case i want only in ASYNCHRONOUS way
    * The other things about my program are working correctly, please
only focus in the asynchronous problem.

Thanks so much in advanced for your help.



Reply via email to