Поймать ошибку Firestore в подписке valueChanges и повторить попытку в случае сбоя - PullRequest
0 голосов
/ 25 сентября 2019

Я использую Firestore для хранения данных для моего приложения Angular.Я создал службу и прочитал данные, например, так:

retrieveCollectionColors(name) {
  this.db.collectionGroup('collection-colors', ref => ref.where('product', '==', name))
    .valueChanges().subscribe( (val: []) => {
    this.collectionColors.next(val);
  });
}

Как я могу перехватить ошибки и, если они возникли, как я могу повторить запрос?

Ответы [ 2 ]

4 голосов
/ 25 сентября 2019

Метод subscribe содержит второй аргумент в случае ошибки:

Rx.Observable.prototype.subscribe([observer] | [onNext], [onError], [onCompleted])

  • [наблюдатель] (наблюдатель): объект, которыйдля получения уведомлений.

  • [onNext] (Функция): функция, которая вызывается для каждого элемента в наблюдаемой последовательности.

  • [onError] (Функция): Функция, которая вызывается при исключительном завершении наблюдаемой последовательности.
  • [onCompleted] (Функция): Функция, которая вызывается при постепенном завершении наблюдаемой последовательности.

Поэтому выполняйтеследующее:

.valueChanges().subscribe( (val: []) => {
    this.collectionColors.next(val);
  },error => {
  console.log(error);
  });
1 голос
/ 25 сентября 2019

Возможно, вы захотите отловить ошибку и повторно запустить код:

  this.db.collectionGroup('collection-colors', ref => ref.where('product', '==', name))
    .valueChanges().subscribe( (val: []) => {
    this.collectionColors.next(val);
  }, error => {
// Do your stuff here
console.log(error);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...