2016-12-29 10 views
3

Ich habe eine kleine Angular 2 App, die die Daten von ASP.net MVC Web API abruft. Verwenden der Authentifizierung Ich versuche, vor der Zeit Compiler in Angular 2. Ich den folgenden BefehlUnbehandelte Promise Ablehnung AOT (vor der Zeit) Angular 2

node_modules \ .bin\ngc -p src

bin zu verwenden läuft, aber ich bin immer folgende Fehler

(node:13640) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Right-hand side of 'instanceof' is not an object (node:13640) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

kann mir jemand sagen, wie es zu lösen

This is my directory structure

ich die tsconfig.json von der Wurzel bis src Ordner verschieben haben, wie es in diesem link

gerichtet wurde

Directory structure

That's how i am using promise

I Dienste, aus denen gemacht habe ich zurückkehren, das Versprechen wie folgt aus:

public get(servicename: string) { 
    this.colorlog.log('get ' + servicename + " ",enmMessageType.Info); 
    return this.http.get(this.ngWEBAPISettings.apiServiceBaseUri + "api/" + servicename + "/", this.ngWEBAPISettings.getConfig()).toPromise(); 
} 

und es in der Komponente wie diese

get() { 
    var promise = this.setupServicePromise.get(this.SERVICE_NAME); 

    promise.then((response: any) => { 
     this.colorlog.log('in then promise ProductComponent get' + response, enmMessageType.Data); 
     this.vm.Products = response.json(); 
    }).catch((error: any) => { 
     this.colorlog.log("Error Occurred in product", enmMessageType.Error); 
    }); 
} 

das ist mein ts raubend .Konfigurationsdatei.

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es2015", "dom"], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    } 
} 
+1

können Sie Ihre TSconfig Datei teilen? –

+0

Bitte überprüfen Sie die Frage – rashfmnb

+1

Ich hatte dieses Problem und ich löste es durch die Aktualisierung meiner eckigen zu lates 2.4.1, ich meine angular/core, common, form, Compiler, Compiler-CLI. versuchen Sie dies –

Antwort

1

Ich habe diese

Erste in folgenden Schritten erreichen

ich die Version aktualisiert haben, wie durch erwähnt MrJSingh

Nach updateh package.json Abhängigkeiten Abschnitt werden so was.

"dependencies": { 
    "@angular/common": "~2.4.0", 
    "@angular/compiler": "~2.4.0", 
    "@angular/compiler-cli": "^2.4.1", 
    "@angular/core": "~2.4.0", 
    "@angular/forms": "~2.4.0", 
    "@angular/http": "~2.4.0", 
    "@angular/platform-browser": "~2.4.0", 
    "@angular/platform-browser-dynamic": "~2.4.0", 
    "@angular/router": "~3.4.0", 
    "core-js": "^2.4.1", 
    "rxjs": "5.0.1", 
    "zone.js": "^0.7.4" 
}, 

Zweite

Danach habe ich Änderungen an app.module.ts Datei und ändern useValue zu useFactory

Änderung dieser

let authService = new AuthService(new LocalStorage()); 
providers: [ 
    {provide:AuthService,useValue:authService}, 
    AdminAuthGuard, 
    UserAuthGuard, 
    SetupServicePromise, 
    SetupServiceObservables 
] 

zu diesem

export function authServiceFactory() { 
    return new AuthService(new LocalStoragee()); 
} 

providers: [ 
    {provide:AuthService,useFactory:authServiceFactory}, 
    AdminAuthGuard, 
    UserAuthGuard, 
    WebAPISettings, 
    LoginService, 
    SetupServicePromise, 
    SetupServiceObservables 
] 

Schließlich Befehl wird erfolgreich nach diesen beiden Schritten ausgeführt.

Note

Für aktuellste Version zu verwenden declaracions statt Anbieter

declarations: [ 
    {provide:AuthService,useFactory:authServiceFactory}, 
    AdminAuthGuard, 
    UserAuthGuard, 
    WebAPISettings, 
    LoginService, 
    SetupServicePromise, 
    SetupServiceObservables 
] 

Für weitere Details lesen Sie in diesem link

+1

In diesen Wochen haben eckige Module keine Provider, sondern Deklarationen. – peterh

+0

danke aktualisiert es. – rashfmnb

Verwandte Themen