I have code like this
this.service.function().subscribe(data :any) => {
this.array = data
this.flat(this.array)
});
My problem is the flat function is running unnecessarily several times. I only want to this to run when this.array got some values.
How do I deal with this? Thanks
CodePudding user response:
You can use a filter operator to check whether data has values or not (data.length check). It will take of only run the subscription if array contains values.
import { filter } from 'rxjs/operators'
this.service.function().pipe(
filter(d => d.length)
).subscribe(data => {
this.array = data
this.flat(this.array)
});
CodePudding user response:
Try this:
this.service.function().subscribe(data => {
this.array = data
if (data.length > 0) {
this.flat(this.array)
}
}
);
