在不同范围内更改分配变量的值

时间:2019-05-16 11:03:57

标签: javascript scope

我正在尝试创建一个对用户进行身份验证的功能。我想在其他函数中使用此函数,这样我就不必重复身份验证过程,而是可以只说if(authenticate())。但是,在编写新的身份验证功能时,我很难返回根据if和else语句而变化的布尔值。

我尝试使用不同的变量声明,例如var和const,但它们似乎没有什么不同。

功能如下:

export function authenticate(username, password){
 let isuserdatacorrect = false
 axios.get(`http://localhost:3000/users?username=${username}`)
 .then(res => {
     // Checks if user exists at least and at most once
     if(res.data.length != 1){
         isuserdatacorrect = false
         return
     }
     else{
         let actualpassword
         console.log(`res.data[0].password = ${res.data[0].password}`)
         console.log(res)
         actualpassword = res.data[0].password
         // Entered password gets matched with password associated with username in database
         if(actualpassword != password){
             isuserdatacorrect = false
             return
         }
         else{
             isuserdatacorrect = true
             return
         }
     }
 })
 return isuserdatacorrect
}

我注意到isuserdatacorrect的初始声明只能在if和else语句的范围内更改,但是我需要一种更改方式,以便它返回布尔值,因此可以在不同的函数中使用它。我不确定该怎么做。

0 个答案:

没有答案