Как я могу исправить этот вызов asyn c - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь настроить обещание, которое будет возвращать результат только после вызова ajax

Однако в моем коде результат возвращает null до завершения ajax, из журнала консоли я могу также убедитесь, что он возвращается до завершения функции checkuser.

Как я могу этого добиться, нужно ли мне делать тайм-аут l oop ждать, пока результат изменит значение на 0 или 1 и установить предел тайм-аута?

 function checkUser() {  
  return new Promise((resolve, reject) => {  
  $.ajax({
  type: "POST",
  url: 'checkUserAvail.php',
  data: {value: value},
  success:  function (data) {
        resolve(data);
      },
  error: function (error)  
        {
         reject(error);
        }
   })
  })
}
    
checkUser()
  .then((data) => {
                console.log(data);
                if (data == 1)
                        {
                         outcome= 1;
                        }
                if (data == 0)
                            {   
                            outcome= 0;
                            }
                    
                })
  .catch((error) => {
    alert("An error ocurred");
  })

console.log(outcome);
return outcome;

1 Ответ

0 голосов
/ 14 июля 2020

console.log(outcome);
return outcome;

Этот бит кода должен быть в блоке then.

Дело в том, что вы пытаетесь вернуть результат до того, как обещание разрешится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...