Skip to content

Commit e2e8954

Browse files
committed
perf(filter): add fast-path for filtering scalar observables
1 parent e80bab6 commit e2e8954

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/observables/ScalarObservable.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,15 @@ export default class ScalarObservable<T> extends Observable<T> {
6262
return new ScalarObservable(project.call(thisArg || this, this.value, 0));
6363
}
6464
}
65+
66+
filter(select: (x: T, ix?: number) => boolean, thisArg?: any): Observable<T> {
67+
let result = tryCatch(select).call(thisArg || this, this.value, 0);
68+
if (result === errorObject) {
69+
return new ErrorObservable(errorObject.e);
70+
} else if (result) {
71+
return this;
72+
} else {
73+
return new EmptyObservable();
74+
}
75+
}
6576
}

0 commit comments

Comments
 (0)