关于 RXJS 的 async 管道和 ts 中对 subscribe 的选择的问题
来源:5-7 操作符和 Async 管道
蜻蜓01
2020-03-14
老师您好,我看这节中对流A的处理,有几个疑问:简单的方式是在html 模板中使用 async 管道进行监听,如果在 ts 文件中其他函数,因为某些业务需要需要,也要使用流的返回值
1、是否只能是在 ts 中进行监听并复制给一个变量 this.params = ‘tab’ 这样使用才方便?
2、如果不是赋值给一个变量,如果在其他函数中每次使用时都再次监听(first())这样是否优雅?
3、这种稍微复杂点的场景是否不推荐使用 async 来监听?
4、也就是 async 适用于简单的场景?
谢谢啊
写回答
1回答
-
接灰的电子产品
2020-03-15
首先 async 管道方式肯定是推荐的,不论复杂还是简单。你说的问题可以采用外面嵌套一个 ngIf 并起一个别名来达成各个属性的访问。
<ng-container *ngIf="stream$ | async as s"> <div [foo]="s.foo"></div> <div [bar]="s.bar"></div> </ng-container>
当然确实有时候是无法使用 async 管道的,这种情况下引入成员变量没问题,只是需要注意在 ngOnDestroy 中要销毁订阅
122020-07-18
相似问题