Search code examples
javascriptangularangular2-servicesangular-http

Property 'includes' is missing in type 'Subscription' -angular2


I have been trying to get an array of objects from node to a service onInit and assign it to component. I am able to view data in service but when i try to assign to a variable in component, I get below error. I have included my code as well. Please favour on this.All i need is to just take that array from service and assign it to finallist in component.

ERROR in 

    C:/Users/girija/Documents/animapp/src/app/components/list.component.ts (28,5): Type 'Subscription' is not assignable to type 'any[]'.
      Property 'includes' is missing in type 'Subscription'.

My code is below: app.service.ts:

   public finallist=[]
     getList(){
          return this.http.get('/api/list').subscribe(data=>{
             this.finallist=JSON.parse(data['_body']);
             return this.finallist;
        })
        }

app.component.ts:

  totallist=[];
     ngOnInit() {
        this.totallist=this.someService.getList();

      }

Solution

  • subscribe returns Subscription object, this is not what you have looking for.

    Try something like this:

    app.service.ts

    getList(): Observable<any> {
      return this.http.get('/api/list').map(data => data['_body']);
    }
    

    app.component.ts

    totallist=[];
    
    ngOnInit() {
      this.someService.getList().subscribe(data => this.totallist = data);
    }