无法将函数返回的布尔值存储在打字稿中的变量中

时间:2019-05-15 09:50:52

标签: typescript

请任何人告诉我如何将函数返回的布尔值存储在变量中。

var output=this.loginService.IsLogin(Username, Password).subscribe();

var output=this.loginService.IsLogin(Username, Password).subscribe();

if (output == true) {
  this.router.navigate(['/incidentSupport'])
}
else if (userName.trim() == "" && password.trim() == "")
{
  this.msg = "Please enter the username or Password"
}
else
{
  this.msg = "Invalid username or password"
}

我希望值应该在变量中存储布尔值true或false

1 个答案:

答案 0 :(得分:0)

您使用的是我假设正在调用RXJS的服务,因此您的IsLogin函数看起来像这样吗?

IsLogin(start: string, end: string): Observable<Object> {
    return this.http.get(URL)
}

如果是,您将返回一个Observable,它是异步的,因为它是对服务器的请求,因此具有延迟(不仅如此,这只是一个非常简单的说明)。

那么您如何解决该问题? subscribe接受回调并将获取的值作为参数传递。这就是我的处理方式:

this.loginService.IsLogin(Username, Password).subscribe((resp: any) => {
  // This assumes that your API directly returns a boolean
  if(output) {
    this.router.navigate(['/incidentSupport']);
  }
  else if(userName.trim() == "" && password.trim() == "") {
    this.msg = "Please enter the username or Password"
  }
  else {
    this.msg = "Invalid username or password"
  }
});