Я пытаюсь решить возникшую проблему, но не знаю, как это сделать. У меня есть сервис с методом для получения страниц из Contentful , он выглядит так:
async getPages(): Promise<Page[]> {
const response = await this.cdaClient.getEntries({
content_type: "page",
include: 3
});
return response.items.map(this.createPage);
}
, который я вызываю в моем app.component :
async ngOnInit() {
this.pages = await this.contentfulService.getPages();
}
То, что я хотел бы сделать, - это когда оно вызывается, сохранить его на contentfulService
, чтобы я мог запросить его позже. Примерно так:
private pages: Page[];
getPage(slug: string) {
return this.pages.find(page => page.slug === slug)
}
async getPages(): Promise<void> {
const response = await this.cdaClient.getEntries({
content_type: "page",
include: 3
});
this.pages = response.items.map(this.createPage);
}
Но проблема в том, что я хотел бы, чтобы getPage также был обещанием, чтобы я мог вызывать его из своего компонента маршрута:
page: any;
constructor(
private router: Router,
private contentfulService: ContentfulService
) {}
async ngOnInit() {
this.page = await this.contentfulService.getPage(this.router.url.split("#")[0]);
}
Кто-нибудь знает, как я могу это сделать?