2017-12-26 4 views
1

Ich habe ein Projekt mit Angular 4.4.6 Version. this is version of angularGenerator nicht definiert Fehler bei der Verwendung erwarten in Winkel 4

Wenn ich es konfiguriere und laufe, ist es in Ordnung. Aber haben Problem, wenn Asynchron mit und warten in Funktion onSubmit Anmeldung: login.component.ts:

public async onSubmit() { 
    this.submitted = true; 
    if (this.form.valid) { 
     const user: ILoginUser = { 
     UserName: this.form.value.username, 
     Password: this.form.value.password 
     }; 
     this.isLoginSuccessful = await this._loginService.login(user, true); 
    } 
    } 

Ich weiß nicht, warum werfen Ausnahme exception here. Ich denke dieses Problem in tsconfig.json, aber ich weiß nicht genau, wo ich falsch liege.

Dies ist tsconfig.json:

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "outDir": "./dist/out-tsc", 
    "baseUrl": "src", 
    "sourceMap": true, 
    "declaration": false, 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "noEmit": true, 
    "noEmitHelpers": false, 
    "target": "es5", 
    "typeRoots": [ 
     "node_modules/@types" 
    ], 
    "lib": [ 
     "es2016", 
     "dom" 
    ], 
    "plugins": [ 
     { 
     "name": "tslint-language-service" 
     } 
    ] 
    }, 
    "exclude": [ 
    "node_modules", 
    "dist" 
    ], 
    "awesomeTypescriptLoaderOptions": { 
    "forkChecker": true, 
    "useWebpackText": true 
    }, 
    "buildOnSave": false, 
    "atom": { 
    "rewriteTsconfig": false 
    } 
} 

Everyone please help me, many thanks! 

Antwort

0

Ich werde statt mit async und warten auf die Verwendung beraten abonnieren. Bitte lassen Sie mich wissen, wenn Sie einen Fehler haben.

erwarten Werke für Versprechen, während Ihre Login-Funktion eine beobachtbare zurückkehren müssen, so dass Sie vielleicht die beobachtbare versprechen, konvertieren möchten, wenn Sie wie erwarten verwenden müssen:
>> .login await (,,) .toPromise()

public onSubmit() { 
 
    this.submitted = true; 
 
    if (this.form.valid) { 
 
    const user: ILoginUser = { 
 
     UserName: this.form.value.username, 
 
     Password: this.form.value.password 
 
    }; 
 
    this._loginService.login(user, true).subscribe((bool) => { 
 
     this.isLoginSuccessful = bool; 
 
    }); 
 
    } 
 
}

+0

Ja, ich glaube, ich instea zu verwenden abonnieren ändern d für async und warten. Angular neue Version wird mehr Abonnieren unterstützen. – vuvietkien

+0

Async erwarten ist nicht genau das gleiche wie abonnieren, sie machen den Code zu warten, während Abonnieren macht keinen Code zu warten –

+0

Sicher, ich muss mehr über subscrible in eckigen 4. Vielen Dank für Ihre Hilfe! – vuvietkien

Verwandte Themen