diff --git a/src/operators/groupBy-support.ts b/src/operators/groupBy-support.ts index 9027480260..73af4499d3 100644 --- a/src/operators/groupBy-support.ts +++ b/src/operators/groupBy-support.ts @@ -30,13 +30,13 @@ export class RefCountSubscription extends Subscription { export class GroupedObservable extends Observable { constructor(public key: string, private groupSubject: Subject, - private refCountSubscription: RefCountSubscription) { + private refCountSubscription?: RefCountSubscription) { super(); } _subscribe(subscriber: Subscriber) { const subscription = new Subscription(); - if (!this.refCountSubscription.isUnsubscribed) { + if (this.refCountSubscription && !this.refCountSubscription.isUnsubscribed) { subscription.add(new InnerRefCountSubscription(this.refCountSubscription)); } subscription.add(this.groupSubject.subscribe(subscriber)); diff --git a/src/operators/groupBy.ts b/src/operators/groupBy.ts index 0cfbea43b6..6a795e3614 100644 --- a/src/operators/groupBy.ts +++ b/src/operators/groupBy.ts @@ -69,7 +69,7 @@ class GroupBySubscriber extends Subscriber { let groupedObservable = new GroupedObservable(key, group, this.refCountSubscription); if (durationSelector) { - let duration = tryCatch(durationSelector)(groupedObservable); + let duration = tryCatch(durationSelector)(new GroupedObservable(key, group)); if (duration === errorObject) { this.error(duration.e); } else {