Ждите метода подписки в Ionic - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть метод в поставщике

getProfile() {
    let headers = new Headers();
    this.loadToken();
    headers.append('Authorization', this.authToken);
    headers.append('Content-Type','application/json');
    return this.http.get(this.db_url + 'profile',{headers: headers})
      .map(res => res.json());
  }

Я вызываю вышеуказанный метод в другом поставщике как

getProfile() {
    this.authService.getProfile().subscribe((profile: any) => {
      this.profile = profile.user._id;
    },(err : any) => console.log(err))
  } 

Здесь я хочу остановить выполнение кода доthis.profile = profile.user._id эта строка выполняется. В том же provider, где я объявляю метод getProfile(), у меня есть http-запрос как

let headers = new Headers();
    headers.append('Content-Type','application/json');
    let selected = {
      address: home.address, 
      date: new Date(),
      id: this.profile // from the getProfile() file.
    }

console.log(selected);

Выход дляid - это undefined.Я думаю, что здесь есть асинхронность.

1 Ответ

0 голосов
/ 10 декабря 2018

поместите этот код в функцию типа

setHeadres(){
 let headers = new Headers();
 headers.append('Content-Type','application/json');
 let selected = {
  address: home.address, 
  date: new Date(),
  id: this.profile // from the getProfile() file.
 }
}

и вызовите эту функцию внутри функции getProfile(), как показано ниже

getProfile() {
 this.authService.getProfile().subscribe((profile: any) => {
   this.profile = profile.user._id;
   this.setHeaders();
 },(err : any) => console.log(err))
} 
...