Я не могу получить значения подписки в angular 9 - PullRequest
0 голосов
/ 26 марта 2020

Я хочу получить код состояния и текст подписки.

WOWEE Не могу. Ну, я могу, но совершенно бесполезно, так как я не могу вернуться.

@Injectable()
export class ApiService {

constructor(private _http: HttpClient, 
              private _authHttp: HttpClient,
              public jwtHelper: JwtHelperService,
              private loggedinService: LoggedinService){

  }

  status_code:number

 def test(){
    var result_ = this._http.get(this.getEndpointUrl(endpoint), {headers: new HttpHeaders({ 'Content-Type':  'application/json','Authorization': localStorage.getItem('id_token') }),observe: 'response'});

    result_.subscribe(resp=>{
      this.status_code = resp.status
      console.log(resp.status). //works
    })

    let wtf = result_.toPromise().then(resp => console.log('toPromise', this.status_code = resp.status));

   return this.status_code.  //null

 }

Как мне ждать возвращения? Ясно, возвращаясь до окончания подписки

1 Ответ

2 голосов
/ 26 марта 2020

Подписка выполняется асинхронно, поэтому, когда вы возвращаете значение this.status_code синхронно, оно не устанавливается.

Что вы можете сделать, это вернуть

this._http.get(this.getEndpointUrl(endpoint), {headers: new HttpHeaders({ 'Content-Type':  'application/json','Authorization': localStorage.getItem('id_token') }),observe: 'response'})

в свой метод и подписаться на него это в месте, где метод вызывается.

...