Как мне выполнить оператор, если .then терпит неудачу - PullRequest
0 голосов
/ 04 сентября 2018
   firestore.collection("Something").where("User2", "==", "")
    .get()
    .then(function(querySnapshot) {    
        querySnapshot.forEach(function(doc) {
            const docRef = firestore.collection("Something").doc(doc.id); 
            docRef.update({

                User2: messageseqno,
        })
    })
    .catch(error => {
    console.log(error);
        const docRef = firestore.collection("Something").doc(); 
          var nullvalue = "";

          docRef.update({

              User1: messageseqno,
              User2: nullvalue,

          })
    });
    })

Мне нужно, чтобы это выполнялось как операторы if-else. учитывая, что если, что я могу сделать, чтобы получить еще.

Приведенный выше код показывает мне ошибку

"Невозможно прочитать свойство 'catch' из undefined"

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Для этого вы также можете использовать синтаксис async и await в блоке try-catch

async function getRecords() {

try {
const records = await firestore.collection("Something").where("User2", "==", "")
    .get();
    
    
    
    //do stuff with records as an array
    
    
    records.forEach(function(doc) {
        const docRef = firestore.collection("Something").doc(doc.id); 
        docRef.update({

            //set of statements if .then is true

        })
        }
}
catch(e) {
console.log("Error",e.message);
//handle your exceptions here
}

}
0 голосов
/ 04 сентября 2018

ОБНОВЛЕНИЕ: я поместил .catch внутри функции then. Это должно прийти сразу после, извините за опечатку.

Используйте .catch после .then. Метод catch дает нам объект ошибки.

firestore.collection("Something").where("User", "==", input)
.get()
.then(function(querySnapshot) {    
    querySnapshot.forEach(function(doc) {
        const docRef = firestore.collection("Something").doc(doc.id); 
        docRef.update({

            //set of statements if .then is true

        })
    })
})
.catch(error => {
  console.log(error);
  // Do stuff when query fails
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...