Ionic 2 在返回之前检查可观察性



我是Ionic和Angular的新手,来自多年的.NET开发。我正在在线尝试一些示例来构建使用 Ionic 2 的登录原型。

我让 WebAPI 在后台工作,只是根据传递的凭据是否正确返回 JSON 真或假。

我得到了如下所示的身份验证提供程序:

  public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
        this.result = this.http.post(this.CONST.APIUrl, JSON.stringify(credentials), new RequestOptions({headers: this.contentHeader})).map(res => res.json())
        if (this.result)
        {
            this.currentUser = new User('Simon', 'saimon@devdactic.com');  
        }
        return this.result;
  }}

登录页面如下所示:

public login() {
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {
        setTimeout(() => {
        this.loading.dismiss();
        this.nav.setRoot(HomePage)
        });
      } else {
        this.showError("Access Denied");
      }
    },
    error => {
      this.showError(error);
    });
  }

目前,它总是将人登录。我知道这种情况正在发生,因为 this.result 总是有一个值。但是,在允许用户登录之前,我将如何检查从 API 返回的数据?

您可以使用

Observable.do 为可观察量创建副作用

在登录功能中:

public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
        this.result = this.http.post(this.CONST.APIUrl,
          JSON.stringify(credentials), new RequestOptions({headers: this.contentHeader}))
           .map(res => res.json())
           .do(userData=>{
               //check userData and set current user
               this.currentUser = new User('Simon', 'saimon@devdactic.com');
               return userData;//make sure to return the value to subscribe  
           });
   return result;
  }}

相关内容

  • 没有找到相关文章

最新更新