Я бы сделал ваш localStorageService возвращаемым наблюдаемым. Поэтому я бы использовал реактивный подход к вашей настройке.
import { from, Observable } from 'rxjs';
import { map, tap } from 'rxjs/operators';
// define variable in your class as
// userProfile$: Observable<UserProfile>
this.userProfile$ = from(this.localStorageService
.getCurrentUser())
.pipe(tap() => this.classHeart()
);
// define variable in your class as
// include$: Observable<boolean>
this.include$: Observable<boolean> = this.userProfile$.pipe(
map(user: User) => this.song.likes.includes(user._id)
);
<li *ngIf="include$ | async">
<span class="badge badge-pill badge-danger">
<i [ngClass]="hearthClass"></i>
</span>
</li>
Когда мы добавляем суффикс имени переменной к $
, это означает, что эта переменная Observable
, это стандарт в сообщество Angular.