0

I have a BehaviorSubject. I am trying to convert its Observable into a ConnectableObservable but I am getting error publishBehaviour is not a function. What am I doing wrong?

this.questionsArray$.publishBehavior is not a function TypeError: this.questionsArray$.publishBehavior is not a function

The code snippet is

private questionsArraySubject: BehaviorSubject<Result>; 
questionsArray$: Observable<Result>;
questionsArrayConnectable$:ConnectableObservable<Result>;

this.questionsArraySubject = new BehaviorSubject<Result>(new Result('initial',{}));

// create Observable. Other components can subcribe to it now to get notifications/values
this.questionsArray$ = this.questionsArraySubject.asObservable(); 
this.questionsArrayConnectable$ = this.questionsArray$.publishBehavior(new Result('initial',{}))
frido
  • 13,065
  • 5
  • 42
  • 56
Manu Chadha
  • 15,555
  • 19
  • 91
  • 184
  • With RxJS 6 you have to use the `pipe` syntax `questionsArray$.pipe(publishBehavior(..))` – frido Sep 26 '19 at 15:19
  • Thanks. happy to accept your answer. I did `questionsArray$: ConnectableObservable;` and then `this.questionsArray$ = (this.questionsArraySubject.asObservable()).pipe(publish()) as ConnectableObservable;`. After subscribing in the component, I used `connect` – Manu Chadha Sep 26 '19 at 16:22
  • You don't have to use `asObservable()` in this case as Subjects are Observables. – frido Sep 26 '19 at 17:57

0 Answers0