0

再帰的に呼び出される関数を作成しました。イベントのリスナーで値がプッシュされる配列を維持しました。ただし、問題は、関数が配列のインクリメントなしで最初に返され、リスナーが後で実行されることです。

public function getAllChilds(seltem:XML, allChilds:Array): Array 
{ 
     if(//the childs of selected item if need to retrive from server)                               
     var   viewChildrenJobsService : HTTPService = new HTTPService(); 
     viewChildrenJobsService.url = // here is my url ; 

 viewChildrenJobsService .addEventListener(ResultEvent.RESULT, function(event:ResultEvent):void { 
    // now on this result event i got all childs of selected item.
    for each(var childJob :XML in seltem.children())    
    {
         allChilds.push(childJob); 
          if (//the childs of childJob need to retrive from server) 
            allChilds = getAllHierarchicalChilds(childJob, allChilds); 
    }
 }); 

 return allChilds; 
}

イベントの完了後に関数が戻るように、この問題を解決する方法はありますか?

4

1 に答える 1

0

わかりました、結果イベントの前に allchilds を返しています。あなたは元の質問を消してしまいました ;) ので、あなたの問題がこれだったかどうかは覚えていません。関数を分割してみてください: 最初にリクエストを取得し、次に allChild の値を取得します。

はい...適切な形式のコードを作成(および貼り付け)する方が良いです。理解しやすいです。

于 2012-06-04T12:03:57.847 に答える