Я хотел бы вызвать API только в первый раз, а затем вернуть переменную, сохраненную в сервис.Я изменил свой код так:
export class CategoryService {
categories: Category[]
constructor(private http: HttpClient, private handleError: HandleErrorService) {
}
/************ REST CALLS *****************/
/**
* Retrieve configuration categories
*/
private getListCategories() {
return this.http.get<Category[]>("/api/configuration/category").pipe(
map(res => {
this.categories = res;
return res;
}),
catchError(err => this.handleError.handleError(err, { severity: 'error', summary: 'Error retrieving the list of categories', life: 5000 })) // then handle the error;
);
}
/************ CATEGORY MANAGEMENT ************/
get getCategories() {
if (this.categories)
return this.categories;
else
this.getListCategories().subscribe((categories:Category[])=>{
return categories;
});
}
}
, но в моем getCategories
мне приходится ждать ответа от вызова API.Есть шаблон или лучшая практика для достижения моей цели?Конечно, я могу установить служебную переменную из компонента, но после этого другой компонент может вызывать API вместо переменной.