Reputation: 176
How can I refactor this part of code? I want to reduce the amount of 'else if' statements. I tried to use || operator, but it's doesn't work.
getNominieesByStage(stage_key: string): Observable<any> {
const simpleObservable$ = new Observable<any>((observer) => {
if (stage_key === 'key1') {
observer.next(NOMINIEES[`${stage_key}`]);
} else if (stage_key === 'key2') {
observer.next(NOMINIEES[`${stage_key}`]);
} else if (stage_key === 'key3') {
observer.next(NOMINIEES[`${stage_key}`]);
} else if (stage_key === 'key4') {
observer.next(NOMINIEES[`${stage_key}`]);
} else if (stage_key === 'key5') {
observer.next(NOMINIEES[`${stage_key}`]);
} else if (stage_key === 'key6') {
observer.next(NOMINIEES[`${stage_key}`]);
} else {
observer.next([NOMINIEES[`${stage_key}`]]);
}
// observable execution
observer.complete();
});
return simpleObservable$;
}
Upvotes: 0
Views: 173
Reputation: 23129
Your code is currently functionaly equivalent to :
const simpleObservable$ = new Observable<any>((observer) => {
observer.next(NOMINIEES[`${stage_key}`]);
observer.complete();
}
return observer;
Without any if
statement.
Also, this can be simplified further by static Observable creation methods :
return Rx.Observable.of(NOMINIEES[`${stage_key}`]);
Upvotes: 1