Вы можете выполнить запрос при загрузке службы, а затем сохранить ответ на службе. ie:
class ProductService {
let products: Array<Product>;
constructor () {
this.getProducts.subscribe((products: Array<Product>) => {
this.products = products;
});
}
}
, затем в вашем компоненте просто укажите this.productService.products;
Если вы ожидаете, что запрос все еще не будет возвращен к моменту загрузки компонента, тогда вы может установить тему, которая разрешается при возврате вызова getProducts. Затем подпишитесь на это в вашем компоненте.
class ProductService {
let products: Array<Product>;
let productsLoaded: Subject<Array<Product>> = new Subject();
constructor () {
this.getProducts.subscribe((products: Array<Product>) => {
this.products = products;
this.productsLoaded.next(this.products);
});
}
}
, затем в вашем компоненте:
public ngOnInit () : void {
this.productList = this.productService.products;
if (!this.products) {
this.productService.productsLoaded.subscribe((products: Array<Product>) => {
this.productList = products;
});
}
}