DEV Community

Discussion on: Fullscreen toggle functionality in Angular using Directives.

Collapse
 
londovir profile image
Londovir

I'm curious. What's the intent behind using an empty pipe() call in the definition of the isMaximized$ property? I don't think I've often seen code where a call is made to pipe() that doesn't include operators within it. Does it help in the subscription teardown or something similar?

Collapse
 
adisreyaj profile image
Adithya Sreyaj • Edited
private isMaximizedSubject = new BehaviorSubject(false);
isMaximized$ = this.isMaximizedSubject.pipe();
// Another way
isMaximized$ = this.isMaximizedSubject.asObservable();
Enter fullscreen mode Exit fullscreen mode

Both ways convert the subject into an observable. So you convert subjects to observables and expose only the observables to make sure consumers cannot call next() and emit values.

Update: I have changed it to asObservable as I don't want to create this impression. Using asObservable is probably the better approach.

Collapse
 
umairhm profile image
Umair Hafeez

Yeah, I've seen the usage of "asObservable()" more often.

Thread Thread
 
adisreyaj profile image
Adithya Sreyaj

And I guess that's the best approach. So I've updated the code to reflect the same.

Thanks.