Skip to content

Commit 4c65136

Browse files
committed
perf(reduce): add fast-path for reducing over scalar observables
1 parent eb11736 commit 4c65136

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/observables/ScalarObservable.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,16 @@ export default class ScalarObservable<T> extends Observable<T> {
7373
return new EmptyObservable();
7474
}
7575
}
76+
77+
reduce<R>(project: (acc: R, x: T) => R, acc?: R): Observable<R> {
78+
if (typeof acc === 'undefined') {
79+
return <any>this;
80+
}
81+
let result = tryCatch(project)(acc, this.value);
82+
if (result === errorObject) {
83+
return new ErrorObservable(errorObject.e);
84+
} else {
85+
return new ScalarObservable(result);
86+
}
87+
}
7688
}

0 commit comments

Comments
 (0)