Ich bin neu bei angularJs2. Ich habe folgende Service erstellt:Typ Promise <void> ist nicht zuweisbar Typ Promise <customType []>
import { Injectable, OnInit } from '@angular/core';
import { customType } from '../models/currentJobs';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class JobService implements OnInit {
constructor(private http: Http) { }
ngOnInit(): void {
this.getCurrentJobs();
}
private headers: Headers = new Headers({ 'Content-Type': 'application/json' });
private ordersUrl: string = 'http://localhost:35032/api/order/';
public orders: customType[];
getCurrentJobs(): Promise<customType[]> {
var jobs = this.http.get(this.ordersUrl)
.toPromise()
.then(response => {
this.orders = response.json() as customType[];
})
.catch(this.handleError);
return jobs;//this line throws error
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
Im Folgenden sind meine Typoskript Konfiguration Vs2017 kompilieren
Wenn ich den Code mit Visual Studio kompilieren 2017 bekomme ich folgende Fehler
**TS2322 Build:Type 'Promise<void>' is not assignable to type 'Promise<customType[]>'.*
*
Helfen Sie mir, diesen Fehler zu beheben.
Sollte der '.then()' 'eine return'? Ohne welchen Wert werden Ihrer Meinung nach Jobs zugewiesen? – nnnnnn
.then() gibt ein Promise zurück, mit dessen Hilfe der Rückruf ausgeführt wird. Ich fand das in der Dokumentation von dann() –
Ich weiß zu schätzen, dass Sie die Antwort gefunden haben, die Sie suchen, aber hat meine aktualisierte Antwort immer noch eine Down-Abstimmung verdient? Wenn es falsch ist, dann ist das in Ordnung, aber ich glaube nicht, dass es das ist, und eine Abstimmungsentscheidung wird verhindern, dass jemand dies später als mögliche Lösung für ihr Problem betrachtet. Vielen Dank! –