Храните данные локально, а не извлекайте их при каждом запуске приложения - PullRequest
0 голосов
/ 27 июня 2019

Для извлечения данных в приложении init я использую APP_INITIALIZER.Чтобы показать страницу только при загрузке данных, я возвращаю обещание, которое разрешится.

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

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

Как насчет кэширования? Чтобы включить кэширование для каждого документа, я использовал AngularFirestoreModule.enablePersistence().Но как мне получить кэшированные данные и, если их нет, как мне вместо этого загрузить их из Firestore?

AppInitService:

Init(): Promise<any> {
return new Promise((resolve) => {
  this.db.collection('entries').valueChanges()
    .subscribe(val => {
      this.casesService.data = val;
      resolve(true);
    });
});}

app.module.ts

export function initializeApp1(appInitService: AppInitService) {
  return (): Promise<any> => {
    return appInitService.Init();
  };
}

providers: [
   AppInitService,
   { provide: APP_INITIALIZER, useFactory: initializeApp1, deps: [AppInitService], multi: true }
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...