Я пытаюсь создать пользовательский канал для получения лайков для определенного поста, у него есть служба, которая подключается к базе данных и извлекает все лайки, связанные с конкретным постом, но когда я пытаюсь запустить свой код, я получаю возвращаемое значение до получения ответа от службы я знаю, что должен дождаться ответа, но не уверен, как это сделать .. пожалуйста, помогите мне решить эту проблему.
HTML page
<a [ngClass]="{'like': toggle, 'dislike': !toggle}" (click)="addremovecomment($event, mainpost)" class="float-right btn-sm text-black btn mr-1 dislike"><span><i class="fa fa-heart" style="color: dislike;"></i></span><label class="ml-1" id="lbl{{mainpost.id}}">{{mainpost | like }}</label></a>
Сервис
getalllikes(post: MainPost): Observable<any> {
return this.http.post<any>(this.baseUrl + 'GetLikes', post);
}
Труба
import { Pipe, PipeTransform } from '@angular/core';
import { MainPost } from '../_models';
import { LikesService } from '../_services';
import { retry } from 'rxjs/operators';
@Pipe({
name: 'like'
})
export class LikePipe implements PipeTransform {
postlikes = 0;
constructor(private likeservice: LikesService) {
}
transform(post: MainPost, ...args: any[]): any {
const UserId = localStorage.getItem('UserId');
this.getlikes(post);
if (this.postlikes === 0) {
return '0 Likes';
} else {
return this.postlikes + ' Likes';
}
}
getlikes(post: any) {
this.likeservice.getalllikes(post).subscribe(data => {
console.log();
// likes = data;
this.postlikes = data;
}, (err: any) => console.error(err));
}
}