Я не могу отображать свои наблюдаемые напрямую, когда я хочу использовать Async Pipe. Я могу обойтись без асинхронного канала, и это работает. Мой код комментария работает хорошо, но я действительно хотел бы использовать Async Pipe для Angular и отписаться в одиночку.
user.service
public newsfeed: BehaviorSubject<MessageUser> = new BehaviorSubject(null);
reloadNewsFeed(): Observable<MessageUser> {
return this.http.get<MessageUser>('api/user/newsfeed').pipe(
tap((x: MessageUser)=>{
this.newsfeed.next(x)
}), switchMap(()=>{
return this.newsfeed
}))
};
newsfeed.component.ts
//public lesMessage2;
public lesMessages:Observable<MessageUser>
constructor(
private userService: UserService,
) { }
ngOnInit() {
// It does not work
this.lesMessages = this.userService.reloadNewsFeed()
// OK that works
// this.subMessage = this.userService.reloadNewsFeed().subscribe((user: MessageUser)=>{
// console.log(user);
// this.lesMessage2 = user;
// }, (err)=>{
// console.log(err);
// })
}
newsfeed.component.html
<span *ngIf="lesMessage | async; let user">
<p>Iterer sur mon Subjects : <strong> {{ user.message }} </strong> </p>
</span>