Я пытаюсь сделать HTTP-запрос на получение, принимает в качестве параметра userId и возвращает один профиль пользователя, используя Angular, но продолжает возвращать неопределенные данные. Я знаю, что проблема не в моем бэкэнд-сервере, потому что тот же HTTP-запрос на получение с почтальоном работает правильно. Кроме того, я получаю это исключение (бэкэнд записан в Java) из моего Angular HTTP-запроса, но не из HTTP-запроса почтальона.
profile.component.ts:
profile: Profile;
constructor(private profileService: ProfileService) {
}
ngOnInit() {
this.getProfile();
}
getProfile() {
this.profileService.getProfile("5e7bd87e05854a05cc0f6898").subscribe(
profile => this.profile = profile,
);
console.log( this.profile );
}
profile.service.ts:
getProfile(userId: string) {
let params = new HttpParams().set("id", userId);
console.log( "executing HTTP get" );
//return this.httpClient.get<any>( "http://localhost:8080/user", { params: params });
// I've tried this above method and the one below
return this.httpClient.get("http://localhost:8080/user", { params: params })
.pipe(
map((data: any) => {
const profile: Profile = new Profile( data.object.id,
data.object.username,
data.object.password,
data.object.fname,
data.object.lname,
data.object.email,
data.object.joined );
return profile;
})
);
}
console.log( this.profile )
просто появляется как undefined
в консоли браузера. Я думаю, что я использую subscribe
неправильно. Кто-нибудь знает, что я делаю неправильно?
РЕДАКТИРОВАТЬ: Вот снимок экрана ошибка из консоли браузера. Не уверен, что это актуально.