Я очень плохо знаком с Angular 2+ (около недели), и у меня есть проблема, связанная с наблюдаемой частью.
У меня есть эта служба:
export class GetProductsService {
allProducts;
constructor(private http: HttpClient) {
this.http.get('https://jsonplaceholder.typicode.com/posts').subscribe({
next: data => this.allProducts = data,
error: err => console.log(err)
});
}
getAllProducts() {
return this.allProducts;
}
В конструкторе я делаю запрос на получение некоторых поддельных «продуктов».
Продукты, которые я получаю, я храню в собственности, так что я могу легче использовать другие функции для свойства в будущем.
Теперь вот моя проблема:
У меня есть этот компонент
export class AllProductsComponent implements OnInit {
allProducts: any;
constructor(private http: HttpClient, private productsService: GetProductsService) {}
ngOnInit(): void {
this.allProducts = this.productsService.getAllProducts();
}
}
, который получает свойство products из ProductService OnInit, однако, учитывая, что оно является наблюдаемым, когда другой компонент пытается получить свойство allProducts, но оно еще не полностью загружено из наблюдаемого потока.
Как бы это решить, я вижу, что это частая проблема, поэтому я также прошу более общего понимания топи c. Я понимаю, что это асин c, и я понимаю, что это такое.
То, что я пробовал :
Я пытался просто заставить Service возвращать Observable вместо установки своего собственного состояния, однако тогда, когда я реализую функцию для удаления указанного c product, мне нужно сделать HTTP-вызов снова, вместо использования внутреннего состояния.
Большое вам спасибо за ваше время!