http-запрос в ngOnInit
не блокируется. Компонент продолжит go через этапы его жизненного цикла, пока ваш первый http-ответ находится в режиме ожидания.
Вместо этого используйте оператор Rx JS, чтобы связать второй запрос с первым запросом. Вы можете использовать либо switchMap
, либо concatMap
, чтобы связать одну наблюдаемую с другой. Вы можете использовать tap
для любых побочных эффектов (делать вещи).
users:any;
userNouns:any;
ngOnInit(){
this.http.get('http://localhost:8000/users/1').pipe(
tap(result => this.user = result),
concatMap(user => this.http.get(`http://localhost:8000/nouns/${this.user.id}`)),
tap(result => this.userNouns = result)
).subscribe(() => {
const contents = this.userNouns.map(noun => noun.content);
console.log(contents);
});
}