У меня есть компонент, который полагается на ответ API для своего контента. Я настроил распознаватель, но он все еще возвращается до того, как мои данные будут готовы.
Как заставить мою функцию pull_categories()
дождаться получения тела ответа и затем вернуться? Вместо того, чтобы возвращать пустой объект, потому что он не будет ждать или даже вызывать его в моем случае ниже.
service.ts
private _categories = [];
constructor(private http: HttpClient) { }
pull_categories() {
this.http.post('https://myapi.com/something', null)
.subscribe(
data => {
this._categories = data['response'];
return this._categories;
}
);
}
component.ts
categories = [];
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.data.subscribe(
(data: Data) => {
this.categories = data.categories;
}
);
}
resolver.ts
constructor(private categoriesService: CategoriesService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<any> | any {
return this.categoriesService.pull_categories();
}
приложение-routing.module.ts
{
path: '',
component: HomeComponent,
resolve: {categories: CategoriesResolverService}
}