web-dev-qa-db-fra.com

Revenez en vous abonnant. ... Le type 'Abonnement' manque les propriétés suivantes

Je souscris une réponse d'un service Angular:

  books: BookModel[] = [];

  constructor(private bookService: BookService) { }

  ngOnInit() {

    this.books = this.getBooks();

  }

  getBooks(): BookModel[] {

    return this.bookService.getByCategoryId(1).subscribe((payload: Payload<GetBooksResponse>) => {

      return payload.result.map((response: GetBooksResponse) => { 

        return {
          id: response.id, 
          title: response.title
        };

      });

    });

  }

Lorsque j'ajoute return à this.bookService, par exemple., return this.bookService J'obtiens l'erreur:

Type 'Subscription' is missing the following properties from type 'BookModel[]': length, pop, Push, concat, and 26 more.

Comment puis-je utiliser return pour que cela fonctionne?

Mise à jour: BookModel:

export interface BookModel {
  id: number;
  title: string;
}
5
Miguel Moura

Vous pouvez utiliser of pour renvoyer un nouvel Observer à partir d'un certain type de collections

https://rxjs-dev.firebaseapp.com/api/index/function/of

0
C Alonso C Ortega