我有一个使用Angular 4.4.6版本的项目。 this is version of angular
当我配置并运行时,它没问题。但是在使用async和await in function onSubmit Login时遇到问题:login.component.ts:
upstream cms_node_server_dev {
server marketing-site-container:3000;
keepalive 64;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
index index.html index.htm index.nginx-debian.html;
root '/home/ubuntu/cms/dev/static-website/public';
location /{
try_files $uri @cms_node_server_dev;
}
location @cms_node_server_dev {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_pass http://cms_node_server_dev;
}
error_page 404 = /404;
}
我不知道为什么抛出异常exception here。我认为tsconfig.json中存在这个问题,但我并不确切地知道错误的位置。
这是tsconfig.json:
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);
}
}
答案 0 :(得分:0)
我建议使用subscribe而不是使用async和await。如果您在此遇到任何错误,请通知我。
await适用于promise,而你的登录函数必须返回一个observable,所以你可能想要将observable转换为promise,如果你必须使用await,如:
>>等待.login(,,)。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;
});
}
}