在角度4中使用await时,生成器未定义错误

时间:2017-12-26 08:06:47

标签: javascript angular

我有一个使用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);
    }
  }

1 个答案:

答案 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;
    });
  }
}