Как исправить «неопределенный» объект при проверке результата в Javascript? - PullRequest
2 голосов
/ 01 июля 2019

, поэтому у меня возникла проблема с переменной (результатом), которая определена в верхней части кода, но после того, как я запишу ее в лог позже, она вернется как неопределенная. Я настраиваю форму новостной рассылки, и это логика для проверки того, зарегистрировался ли пользователь уже или нет, и выдает сообщение о том, есть ли у него.

Я пытался установить переменную как логическое значение, но код проверяет конкретный пользовательский ввод, чтобы он не работал, я также пытался установить переменную в разных частях кода, но безуспешно. Я все еще новичок, когда дело доходит до JavaScript, к сожалению.

var result = coll.doc(email);
  exists.then(val => {
    console.log(val)
    // perform an action according to existing document or not
    if (val == true) { // document already exists
      alert("already registered to our newsletter. Thank you for your interest!");
      console.log(message)
    } else if (val == false) { // document doesn't exist
      console.log('setting the doc');
      // set the new document
      coll.doc(email).set({
        firstname: firstName,
        lastname: lastName,
        nation: country,
        type: typeofInv
      })
      .then(result => { // if no error
        console.log('Received ticket: ' + result);
        if (result) { // check for certain characteristics in the result here
          alert("You are successfully registered. We will be in touch!");
        }
        console.log(message)
      })

Ожидаемый результат заключается в том, что переменная результата должна консоль записывать в журнал электронную почту, введенную пользователем, чтобы я мог проверить определенные характеристики по ней, но вместо этого я получаю неопределенный результат, когда консоль регистрирует его. Есть мысли по этому поводу?

1 Ответ

0 голосов
/ 01 июля 2019

coll.doc (электронная почта) может завершиться с ошибкой, и результат останется с нулевым значением, вы должны попытаться дать значение var result перед вызовом coll.doc (электронная почта);например:

var whatevervar = "";

или if - это int:

var whatevervar = 0;

, если if - это bool:

var whatevervar = false;

и т. д. *

просто так:

var result = "";
result = coll.doc(email);
  exists.then(val => {
    console.log(val)
    // perform an action according to existing document or not
    if (val == true) { // document already exists
      alert("already registered to our newsletter. Thank you for your interest!");
      console.log(message)
    } else if (val == false) { // document doesn't exist
      console.log('setting the doc');
      // set the new document
      coll.doc(email).set({
        firstname: firstName,
        lastname: lastName,
        nation: country,
        type: typeofInv
      })
      .then(result => { // if no error
        console.log('Received ticket: ' + result);
        if (result) { // check for certain characteristics in the result here
          alert("You are successfully registered. We will be in touch!");
        }
        console.log(message)
      })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...