У меня проблема с использованием Angular http-запросов. Пожалуйста, взгляните на следующие фрагменты кода:
http-service.ts
import {Injectable} from '@angular/core';
import {environment} from '../../../../environments/environment';
import {HttpClient, HttpHeaders} from '@angular/common/http';
const BASE_URL = environment.API.MAIN.PATH;
const WAR = environment.API.MAIN.WAR;
@Injectable({
providedIn: 'root'
})
export class HttpService {
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'my-auth-token'
})
};
constructor(private http: HttpClient) {
}
getITById(id) {
return this.http.get(`${BASE_URL}/${WAR}/events/find?id=${id}`);
}
}
app-component.ts
import {Component, Input, OnInit} from '@angular/core';
import {HttpService} from '../../services/http-service.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
constructor(private httpService: HttpService) {
}
ngOnInit() {
}
processPart(idToPass) {
// get the loaded value from requesPart(idToPass); function and process that data set in this function.
let data = requestPart(idToPass);
}
requestPart(id) {
// (1)
return this.httpService.getITById(id)
.subscribe((data: any) => {
console.log(data)
}, error => {
console.error(error);
}
);
}
}
Это проблема. Я знаю, что реализация, которую я сделал в (1), неверна (это вернет объект подписчика). Я хочу знать, как получить набор данных из метода requestPart(id);
для обработки в методе processPart(idToPass);
.
Структура проекта не может быть изменена, и http-сервис не может быть импортирован в компонент (как предлагали некоторые из существующих решений)
Буду признателен, если кто-то укажет, что я здесь упускаю.
Заранее спасибо.