我正在使用Angular创建一个应用程序。在组件上,我具有用于预加载数据的解析器。这是解析器的代码:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): void {
return Observable.create(observer => {
const searchProductsRequest = this.journeyDataService.searchProductsRequest;
this.basketService.reset();
this.progressService.subscribe(
this.productsPublicApiService.getRecommendedProductCategoriesUsingGET(searchProductsRequest.vrn,
searchProductsRequest.postcode),
(response) => {
// we save work type list
observer.next(response.categories);
},
// this.handleServerErrors.bind(this)
(err) => console.error(err)
);
observer.complete();
});
}
然后在我正在执行的组件中
ngOnInit() {
this.productCategoryList = this.route.snapshot.data.productCategoryList;
console.log('resolve', this.productCategoryList);
}
这里的resolve为null。因此,问题在于服务器发出的响应会在稍后运行,然后我运行完毕,因此没有要显示的数据。
答案 0 :(得分:1)
您可以像这样完全调用“下一个”处理程序:
(response) => {
// we save work type list
observer.next(response.categories);
observer.complete();
},
不过,最有可能采用一种更常用的方式来处理您的任务,但要实现它,必须了解“ getRecommendedProductCategoriesUsingGET
和progressService.subscribe
是什么