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);
}
}
Je reçois cette erreur:
La propriété 'toPromise' n'existe pas sur le type 'Observable'.
Vous devez ajouter l'opérateur comme ceci:
import 'rxjs/add/operator/toPromise';
Ceci est nécessaire pour chaque opérateur rxjs que vous souhaitez utiliser.
Essayez d'ajouter 'Réponse' à votre déclaration d'importation à partir de '@ angular/http' comme ceci:
import {Http, Headers, Response} from '@angular/http';
De plus, j'ai remarqué que vous n'importiez pas Ingectable à partir de angular core bien que vous utilisiez @Injectable decorator.
import { Injectable } from '@angular/core';
utiliser cette importation au début
import {Observable} from "rxjs/Rx";
Pour quiconque trébuche (c'est le lien Google le plus haut pour moi), voir ci-dessous ce qui provient de l'une des réponses liées.
https://github.com/Microsoft/TypeScript/issues/8518#issuecomment-229506507
Comme il est dit, dans Visual Studio 2015, vous pouvez résoudre ce problème en mettant à jour votre version de TypeScript via
https://www.Microsoft.com/en-us/download/details.aspx?id=4859