Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.publishReplay() on existing .publish() connectableObservable does not replay #2401

Closed
paulspiteri opened this issue Feb 22, 2017 · 4 comments · Fixed by #2405
Closed

.publishReplay() on existing .publish() connectableObservable does not replay #2401

paulspiteri opened this issue Feb 22, 2017 · 4 comments · Fixed by #2405

Comments

@paulspiteri
Copy link

paulspiteri commented Feb 22, 2017

tested on 5.0.3 & 5.2.0

The below test should pass and does pass if publishedUnderlying$ is taken out.
It appears that a replaySubject() is not being used in this scenario - instead a regular subject from the publish(?) is being used.

A simply workaround is to add .map(x => x) directly before .publishReplay() to hide the connectableObservable.

import { Subject } from 'rxjs';

describe('rx test', () => {

  it('should replay even if published', () => {

    const underlying$: Subject<{}> = new Subject<{}>();

    const publishedUnderlying$ = underlying$.publish();
    const publishConnection = publishedUnderlying$.connect();

    const replayed$ = publishedUnderlying$.publishReplay();
    const replayConnection = replayed$.connect();

    underlying$.next({});

    let nextCount = 0;
    const sub = replayed$.subscribe((data: {}) => {
      nextCount++;
    });

    expect(nextCount).toBe(1);

    replayConnection.unsubscribe();
    publishConnection.unsubscribe();
    sub.unsubscribe();
  });
});
@trxcllnt
Copy link
Member

Ah, I see what's happening. Will try to have a fix soon.

trxcllnt added a commit to trxcllnt/rxjs that referenced this issue Feb 23, 2017
…re state-isolated.

This fix ensures ConnectableObservables created by multicast start with null _subject, _connection,
and 0 _refCount.

ReactiveX#2401
@trxcllnt
Copy link
Member

@paulspiteri fixed in #2405

@raybooysen
Copy link

Thanks @trxcllnt

@lock
Copy link

lock bot commented Jun 6, 2018

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked as resolved and limited conversation to collaborators Jun 6, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants