問題

私はスレッドの後に関数を呼び出そうとしています。しかし、関数は スレッドを完了する前に呼び出されます。どこを変更する必要がありますか?

 this._listService.getListById(this.userName)
  .subscribe((response: any) => {     // getting proper response.
    if (response) {
      this._listServiceMod.loadListModel(response); // thread
      this.filterList();
    }
  });



 loadListModel(data:any) {
        const promise = this._listItemService.run(
                        this.loadListItem,
                        {
                            constants: appConstants
                        });
        promise.then((updatedAuthList) => {
            ....
            ....
            this._listItemService.terminate(promise);
        }).catch(e => {
        });;
    }




  filterList(){
  console.log('Inside Filter List')  // prints before completing thread.
  }
 

  ベストアンサー

非同期を使用してこの方法を試してください

 this._listService.getListById(this.userName)
.subscribe((response: any) => {    
  if (response) {
     this.modelOpen(response);
  }
});

filterList(){
  console.log('Inside Filter List')
}

async modelOpen(response) {
   await this._listServiceMod.loadListModel(response);
   this.filterList();
}
 

非同期

  同じタグがついた質問を見る

angularpromiserxjsangular5