Bonjour
Je vous explique, j'ai un une liste d'utilisateur que j'alimente et mets à jour lors de chaque connexion sur le serveur. Cette liste est partagé par tous les composants
Voici le service qui contient la liste :
Mon problème c'est lorsqu'un utilisateur se déconnecte, je souhaite enlever cet utilisateur de la liste. Donc je procède comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 export class DataServiceService { userDataSource: BehaviorSubject<User[]> = new BehaviorSubject([]); userData = this.userDataSource.asObservable(); constructor() { } addUser(user: User) { const currentValue = this.userDataSource.value; const updatedValue = [...currentValue, user]; this.userDataSource.next(updatedValue); } getArrayUser(): Observable<User[]> { return this.userData; } updateArrayUser(users: User[]) { this.userDataSource.next(Object.assign([], users)); } }
Et là je tombe sur une infinite loop puisque je fais un update dans un subcribe.. Avez vous une idée pour supprimer correctement cet utilisateur depuis son id ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 this.dataService.getArrayUser().subscribe(result => { let oldUSers = result; let newUSers = oldUSers.splice(oldUSers.findIndex(item => item.id == user.id), 1); this.dataService.updateArrayUser(newUSers); });
Merci![]()
Partager