У меня есть рабочий код, но он написан не лучшим образом в соответствии с канонами реактивного программирования.
Как вы видите в коде, мне нужно использовать данные, к которым возвращается наблюдаемое me.
Не обращайте особого внимания на то, что делают циклы for, мне просто нужно использовать данные, которые мне возвращает наблюдаемое.
Если я запускаю циклы for вне подписка, возможно, что нужные мне данные еще не доступны, поэтому я не могу пойти по этому пути.
ngOnInit(): void {
this.subscriptionGetRating = this.ratingService.getRating(this.userId).subscribe({
next:data => {
this.count = data['count'];
this.rating = data['rating'] / this.count;
if(this.count == 0){
this.rating = 0;
for(let k=0;k<=4;k++){
this.ratingArray[k] = this.greyStar;
}
} else{
let trunc = Math.trunc(this.rating);
for(let j=0;j<trunc+1;j++){
if(this.rating>j && this.rating<j+1){
this.ratingArray[j] = this.midStar;
}else {
if(j!=trunc)
this.ratingArray[j] = this.yellowStar;
}
}
if (this.rating == Math.floor(this.rating)){
for(let k=trunc;k<=4;k++){
this.ratingArray[k] = this.greyStar;
}
} else {
for(let k=trunc+1;k<=4;k++){
this.ratingArray[k] = this.greyStar;
}
}
}
},
error:error => {
console.error(error);
}
});
}
Я sh какая-то хорошая душа дает мне хотя бы один пример того, как я могу решить эта проблема.
Чтение на net Я нашел только примеры, где единственная выполняемая операция - это печать в консоли данных, которые возвращает наблюдаемая (console.log(data);
).