2016-11-08 7 views
1

呼び出す関数は2つありますが、最初の関数が完了した後で2番目の関数を呼び出すだけです。それをどうやって行うのですか?TypeScript /角型2 - 別の関数が完了した後に関数を呼び出す

まず機能:

getDirectorySubfolders(node: any) { 
    console.log('Home:getDirectorySubfolders() entered...'); 

    this._sdiService.getDirectoriesAtPath("Desktop") 
     .subscribe(res => { 
      this.nodeChildren = res; 
     }); 
} 

第二機能:

getChildren(node: any) { 
    console.log('Home:getChildren entered..'); 
    return new Promise((resolve, reject) => 
    { 
     setTimeout(() => resolve(this.nodeChildren.map((c) => 
     { 
      return Object.assign({}, c, {}); 
     })), 1000); 
    }); 
} 

答えて

3

最初の1が終了した後、あなたの第2の機能を呼び出すための2つの簡単な方法があります - あなたはthis.nodeChildren = res;の下でそれを行うことができますまたは仕上げパラメータを使用する()

getDirectorySubfolders(node: any) { 
    console.log('Home:getDirectorySubfolders() entered...'); 

    this._sdiService.getDirectoriesAtPath("Desktop") 
     .subscribe(res => { 
      this.nodeChildren = res; 
      this.getChildren(); <-- here 
     }, 
     () => { 
      this.getChildren(); <-- or here 
     }); 
} 

getDirectorySubfolders()関数を呼び出すと、getDirectorySubfolders()の完了後にgetChildren()が呼び出されます。

関連する問題