I have a Subject called refreshSubject$ inside my service.
private refreshUsers$ = new Subject<User[]>();
He is emitting a new value every time the user is added.
saveUser(user: User[]) {
return this.http.post<User>(this.url, user)
.pipe(
tap(() => {
this.refreshUsers$.next();
})
);
}
Im using a get method on my service to retrieve the value
get refresh$() {
return this.refreshUsers$;
}
Now every time i add a new user, i emit a new value using the next() method.
this.refreshUsers$.next();
Inside my component i have my life cycle hook ngOnInit that he is being called everytime the refreshUsers$ subject emits a new value.
ngOnInit(): void {
this.apiService.refresh$.subscribe(() => {
this.getAllUsers();
});
}
Why ngOnInit is called every time i subscribe to a new value ?