Служба продолжает удалять глобальный объект

#angular6

#angular6

Вопрос:

У меня есть сервис, который определяет объект для совместного использования несколькими компонентами. Я устанавливаю значения этого объекта в функции, которая вызывается во время APP_INITIALIZER, и сначала кажется, что все в порядке, но когда я пытаюсь получить этот объект из других компонентов, он всегда пуст…

В моем data.service.ts у меня есть это:

   // Object to be shared across components
  private loggedUser = {};

  setObject(user) {
    this.loggedUser = user;
  }

  getObject() {
    return this.loggedUser;
  } 

 // Function that is correctly executed during the APP_INITIALIZER
  Init() {
    return new Promise<void>((resolve, reject) => {
      this.getCurrentUser().subscribe((data: any) => {
       // I receive an object with some properties here
        this.setObject(data);
        resolve();
      });
    });
  }
  

Затем в одном из моих компонентов я пытаюсь получить этот объект с:

   ngOnInit() {
    var user = this.dataService.getObject();
    console.log(user); // It's always empty
  }
  

ОТРЕДАКТИРОВАНО:

В моем app.module.ts у меня есть фабрика, которая получит обещание от функции Init ():

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

providers: [ DataService, { provide: APP_INITIALIZER, useFactory: initializeApp1, deps: [DataService], multi: true} ],
  

Как вы можете видеть, моя цель — установить объект во время APP_INITIALIZER и после этого иметь возможность совместно использовать его между компонентами.

Комментарии:

1. где вызывается Init (), кому он возвращает обещание?

2. Обновил вопрос, смотрите Отредактированный раздел.