Actually, I want to concat the tmpArray of each loop ant return it then. --- In [email protected], "jason_williams_mm" <[EMAIL PROTECTED]> wrote: > > Each fill operation is asynchronous and so are the calls to Alert.show > (). This means that code doesn't stop when these lines of code are > executed it continues to run the very next line. > > With the fill operation you will not get a valid length until the > server responds to the request, however, during that time you will > continue to execute more fill requests until all projects within the > projectsArray have been iterated. > > It is not clear what you are after here, if you want to display the > length of the filled collection after the server has responded then > you could do something like the following: > > tmpArray.addEventListener(CollectionEvent.COLLECTION_CHANGE, > collectionChangeHandler); > taskDataService.fill(...); > > function collectionChangeHandler(event:CollectionEvent):void > { > if (event.kind == CollectionEventKind.RESET) > { > // display the length using the event.target.length > } > } > > The RESET kind is only dispatched when the collection has been > initially filled when managed by DataService. > > There are more sophisticated approaches to this problem as well like > using a responder with the AsyncToken returned from the fill() > method, but, it is unclear if you are only after debugging > information or not. If you really only want debugg information then > use the <mx:TraceTarget /> in your application MXML and a debug > player then inspect the flashlog.txt or the console when using > FlexBuilder in debug mode. > > --- In [email protected], "jonathan_merey" <mereyj@> > wrote: > > > > My problem is simple. I know each of my projects have tasks. If I > > delete the loop. The second Alert.show print the good length. But > with > > the loop, the second Alert.show print 0 except for the last loop. > If i > > delete the first Alert.show, the second print 0 even for the last > > loop. I understood its due to a problem of exectution time but how > > can i do to do what i want. Thank you. > > > > > > Here is the code : > > > > private function getTasks():void > > { > > currentState=''; > > if (document.listProject.selectedIndex == -1) > > { > > var projectsArray:ArrayCollection = > > ArrayCollection(document.listProject.dataProvider); > > var tmpArray:ArrayCollection = new ArrayCollection(); > > var i:int; > > for (i = 0; i < projectsArray.length; i++) > > { > > mx.controls.Alert.show(projectsArray.getItemAt(i).id); > > taskDataService.fill(tmpArray, "tasksProject", > > [projectsArray.getItemAt(i).id]); > > mx.controls.Alert.show(tmpArray.length.toString()); > > > > } > > } > > else > > taskDataService.fill(document.tasksArray, "tasksProject", > > [document.listProject.selectedItem.id]); > > } > > >
-- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/flexcoders/join (Yahoo! ID required) <*> To change settings via email: mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

