Angular Firebase角度返回值在循环外
我对Angular和Firebase都是新手。当我检查用户登录时,我的函数总是返回0,即使我做了正确的检查。我的问题是我的返回值来自外部Angular Firebase角度返回值在循环外,angular,typescript,firebase,Angular,Typescript,Firebase,我对Angular和Firebase都是新手。当我检查用户登录时,我的函数总是返回0,即使我做了正确的检查。我的问题是我的返回值来自外部 checkLog(mail: string, password: string): number { let isTrue = 0; this.http.get(exampleJson).subscribe(resData => { for (let data in resData) {
checkLog(mail: string, password: string): number {
let isTrue = 0;
this.http.get(exampleJson).subscribe(resData => {
for (let data in resData) {
this.http.get<User_model>(exampleJson' + data + '/.json').subscribe(res2Data => {
console.log('Name = ', res2Data.user_name, 'Password = ', res2Data.password);
if (mail === res2Data.user_name && password === res2Data.password) {
isTrue = 1;
}
})
}
});
return isTrue;
}
checkLog(邮件:字符串,密码:字符串):数字{
设isTrue=0;
this.http.get(exampleJson).subscribe(resData=>{
for(让数据进入resData){
this.http.get(例如json'+data+'/.json').subscribe(res2Data=>{
console.log('Name=',res2Data.user_Name',Password=',res2Data.Password);
如果(邮件===res2Data.user\u名称和密码===res2Data.password){
isTrue=1;
}
})
}
});
回归真实;
}
主要原因是您在函数中进行了几个异步HTTP调用,这需要时间来处理
调用checkLog
时,工作流如下所示:
let isTrue=0代码>被调用
被异步调用,这意味着它需要一些时间来处理this.http
returnistrue代码>在之后立即调用
isTrue
没有时间处理,显然返回0,因为您的HTTP调用没有及时处理您的变量
您可以找到解决问题的方法之一。主要原因是您在函数中进行了几个异步HTTP调用,这需要时间来处理 调用
checkLog
时,工作流如下所示:
let isTrue=0代码>被调用
被异步调用,这意味着它需要一些时间来处理this.http
returnistrue代码>在之后立即调用
isTrue
没有时间处理,显然返回0,因为您的HTTP调用没有及时处理您的变量
可以找到解决您问题的方法之一