Каждый then () должен возвращать значение или throw - обещание / всегда возвращать в узле JavaScript - PullRequest
0 голосов
/ 13 сентября 2018

Я пробовал код из примера кода, но при развертывании произошла ошибка

42:7  error  Each then() should return a value or throw  promise/always-return

Вот код

db.collection('users').get().then((snapshot) => {
    if (!doc || !doc.exists) {
        throw new Error("data does not exists");
    }
    snapshot.forEach((doc) => {
        return  console.log(doc.id, '=>', doc.data());
    });
})
.catch((err) => {
    return  console.log('Error getting documents', err);
});

Ответы [ 2 ]

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

Позвольте мне отформатировать это немного, чтобы стало яснее определить проблему:

db.collection('users').get()
  .then((snapshot) => {
    if (!doc || !doc.exists) {
      throw new Error("data does not exists");
    }

    snapshot.forEach((doc) => {
      return  console.log(doc.id, '=>', doc.data());
    });
  })
  .catch((err) => {
    return  console.log('Error getting documents', err);
  });

Как вы можете видеть выше,

.then

ничего не возвращает, потому что возврат внутри

snapshot.forEach

возвращает значения для forEach, а не для .then.

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

В приведенном выше примере вы возвращаетесь из функции forEach, а не из функции then.Я бы изменил это на

return snapshot.map(doc => {
   ...
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...