Отображение индикатора загрузки при записи данных в Firestore - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть вопрос относительно того, что я не могу понять, как показать загрузчик при обновлении firestore.

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

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

Может кто-нибудь помочь мне?

Заранее спасибо.

array.forEach(itemInArray => {
db.where(test, '==', itemInArray.test )get()
  .then((result) => {
    // try to update doc first
    db.doc(result.docs[0].id).update({
      test: 'test'
    });
  })
  // update successfull
  .then(() => console.log('Document exists! We have updated the current one'))
  // If the update failed, we create new doc
  .catch((err) => {
    console.log('Created document);
    db.doc().set({
      test: 'test'
    });
  });

});

1 Ответ

0 голосов
/ 20 ноября 2018

Как мы обсуждали в чате, если ваши операции с базой данных должны быть последовательными, вы могли бы сделать что-то вроде этого:

showSpinner();
updateFirstThing()
  .then(() => updateSecondThing())
  .then(() => updateThirdThing())
  .catch(err => handlerError(err))
  .finally(() => hideSpinner());

Если некоторые операции могут быть параллельными, вам нужно рассмотретьиспользуя Promise.all, чтобы убедиться, что счетчик скрыт, когда все обещания выполнены (или произошла ошибка).

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