0

Ich habe Probleme mit Promise in angular2. Ich habe alle Dateien importiert, wie von eckigen Dokumenten vorgeschlagen. Aber erhalte den Fehler "Name kann nicht gefunden werden". Unten ist mein Code:Name nicht gefunden Promise

import { Injectable } from '@angular/core'; 
import { Headers, Http, Response } from '@angular/http'; 
import 'rxjs/add/operator/toPromise'; 
@Injectable() 
export class StorefrontService { 
    private sfUrl = 'app/storefront/storefront.component.json'; // URL to mock json 
    constructor(private http: Http) { } 
    getSfItems(): Promise<any[]> { 
     return this.http.get(this.sfUrl) 
      .toPromise() 
      .then(this.extractData) 
      .catch(this.handleError); 
    } 
    private extractData(res: Response) { 
     let body = res.json(); 
     return body.data || {}; 
    } 
    private handleError(error: Response | any) { 
     // In a real world app, we might use a remote logging infrastructure 
     let errMsg: string; 
     if (error instanceof Response) { 
      const body = error.json() || ''; 
      const err = body.error || JSON.stringify(body); 
      errMsg = `${error.status} - ${error.statusText || ''} ${err}`; 
     } else { 
      errMsg = error.message ? error.message : error.toString(); 
     } 
     console.error(errMsg); 
     return Promise.reject(errMsg); 
    } 
} 

Muss das Promise-Objekt von irgendwo importiert werden? Ich habe versucht, aus der rxjs-Bibliothek zu importieren, aber es hat nicht funktioniert.

import { Promise } from 'rxjs/Promise'; 

Eine Idee, warum das passiert?

+0

Erhalten Sie den Fehler in Ihrem Browser oder in Ihrem IDE – lastWhisper

+0

Ich bekomme das in IDE (VS Code) –

Antwort

0

die folgenden Import Abschnitt hinzufügen:

import { Observable } from 'rxjs/Rx' 

this.http.get(...) wird eine beobachtbare zurück, die ein Versprechen durch Zugabe von toPromise() wie Ihr haben in Ihrem Code zurückgeben kann. Darüber hinaus müssen Sie nichts anderes für Versprechen importieren, da es sich um eine Standardklasse in ES6 handelt.

siehe auch:

Hoffnung, das hilft.

+0

Hey .. Ich habe versucht, aber es gibt immer noch denselben Fehler in der IDE. Eine Sache noch. In meiner tsconfig.json habe ich Ziel auf ES5 .. –

+0

Setzen Sie es auf ES6 und ignorieren Sie den Fehler, wird es gut kompilieren – lastWhisper

Verwandte Themen