请任何人告诉我如何将函数返回的布尔值存储在变量中。
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
答案 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"
}
});