import { Headers, Http } from '@angular/http';
@Injectable()
export class PublisherService{
private publishersUrl = 'app/publisher';
constructor(private http: Http) { }
getPublishers(): Promise<Publisher[]>{
return this.http.get(this.publishersUrl)
.toPromise()
.then(response => response.json().data)
.catch(this.handleError);
}
}
I am getting this error:
Property 'toPromise' does not exist on type 'Observable'.any
use this import at the beginning
import {Observable} from "rxjs/Rx";
For anyone else who stumbles on this (it was the top google link for me), see the below which comes from one of the linked answers
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
As it says, in Visual Studio 2015 you can fix this by updating your version of typescript via
https://www.microsoft.com/en-us/download/details.aspx?id=48593
Try adding 'Response' to your import statement from '@angular/http' like this :
Also i noticed you don't import Ingectable from angular core although you use @Injectable decorator.
You need to add the operator like this:
This is needed for every rxjs operator you want to use.