Не может использовать Async Pipe RXJS - ANGULAR - PullRequest
0 голосов
/ 01 декабря 2019

Я не могу отображать свои наблюдаемые напрямую, когда я хочу использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...