У меня есть angular 8 приложение и сервис, например:
export class ProfileUserService {
user$ = this.authService.loginStatus().pipe(take(1));
constructor(private profileService: ProfileService, private authService: AuthService) {}
getProfile(): Observable<ProfileApi> {
return this.user$.pipe(mergeMap(({ profile }) => this.profileService.get(profile.participant)));
}
}
И у меня есть компонент, где я использую сервис, где я вызываю метод, например:
export class SettingsAccountComponent extends FormCanDeactivate implements OnInit, OnDestroy {
constructor(
private profileUserService: ProfileUserService){}
ngOnInit() {
this.innerWidth = window.innerWidth;
this.profileSubscription = this.profileUserService.getProfile().subscribe((profile: ProfileApi) => {
this.profile = profile;
this.deletePicture = false;
this.buildForm();
});
}
}
Но я хочу вызвать непосредственно в компоненте SettingsAccountComponent: этот сервис:
private profileService: ProfileService
Но проблема заключается в следующем:
user$ = this.authService.loginStatus().pipe(take(1));
Потому что мне это нужно для получения participantId. Но поэтому мой вопрос заключается в том, как объединить ProfileService, например,
this.profileSubscription = this.profileService.get().subscribe((profile: ProfileApi) => {
this.profile = profile;
this.deletePicture = false;
this.buildForm();
});
с:
user$ = this.authService.loginStatus().pipe(take(1));
, потому что теперь в методе get () он требует ParticipantId
Так что я должен изменить?
Спасибо