Что я не так в коде. Я получаю поздний ответ от Axios - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь проверить данные пользователя при отправке, вызывая этот метод с помощью кнопки отправки.

   validateCredentials() {
        console.log('Validateuser')
         let isUserValid = false    
        axios.get('http://localhost:12345/api/Login/ValidateCredentials?UserID=abc&Password=abc')
        .then(res=>{isUserValid = response.data.Item1})
        console.log(isUserValid)
        return isUserValid
}

Здесь isUserValid всегда true из API, но сначала время возвращает ложь. После входа не удалось получить ответ как True и вывести

Вывести консольный журнал

1 Ответ

0 голосов
/ 13 апреля 2020

Если вы хотите использовать ответ сервера синхронно и назначить переменную, вам нужно использовать promises или async / await

В приведенном выше коде вы используете асинхронный код ax ios, чтобы установить значение, но не будет работать все время

Используйте приведенный ниже код для синхронного выполнения асинхронной задачи

async validateCredentials() {
            console.log('Validateuser')
             let isUserValid = false    
             let reponse = await axios.get('http://localhost:12345/api/Login/ValidateCredentials?UserID=abc&Password=abc')
              isUserValid = respose.data.Item1 
              console.log(isUserValid)

        return isUserValid
}

Также при вызове функции validateCredentials используйте await или обещание подождать, пока проверка не будет установлена успешно

...