For example I have multiple ids : [1,2,3,4,5]
and then for each id I want to call delete api endpoint.Normally I would have to call it 5 times with forEach function :
ids.forEach(item => {
this.myService.delete(item).subscribe.....
})
But what if I want to combine it to one observable, so I could know when the loop has ended (complete state in rxjs) ?
Can I do something like this ?
CodePudding user response:
You can first create the array of observables, then use forkJoin
to execute them parallely!
deleteIds(ids: Array<number>) {
// create a array of delete observables to be executed at once
const deleteIds = ids.map(id => this.myService.delete(id));
forkJoin(deleteIds).subscribe(() => {
// execute the rest of the code
});
}