Javascript 返回取决于可观察值的值的最佳和最干净的方法
我有很多代码的结构与下面的类似。有许多可观测或可回放的对象。如果我想从HTML模板中检索包含在observable中的值,那么最好的方法是什么?在特殊情况下,还包括模板中的参数Javascript 返回取决于可观察值的值的最佳和最干净的方法,javascript,angular,typescript,Javascript,Angular,Typescript,我有很多代码的结构与下面的类似。有许多可观测或可回放的对象。如果我想从HTML模板中检索包含在observable中的值,那么最好的方法是什么?在特殊情况下,还包括模板中的参数 public config$ = new ReplaySubject<Config>(1); public getValue(foo: number): number { this.config$.pipe(take(1)).subscribe((config) => { // some
public config$ = new ReplaySubject<Config>(1);
public getValue(foo: number): number {
this.config$.pipe(take(1)).subscribe((config) => {
// something like return config.value + foo;
});
}
public config$=新的ReplaySubject(1);
公共getValue(foo:number):number{
this.config$.pipe(take(1)).subscribe((config)=>{
//类似于return config.value+foo;
});
}
建议尽可能不要使用subscribe
,因为这样您还必须管理从observable取消订阅。最佳实践是对可观察对象进行管道化,然后在模板中使用async
管道。您还可以使用*ngIf=“config$| async as config”
将模板中的config
变量设置为可观察变量的最新值
在控制器中
public value$ = this.config$.pipe(take(1), map(config => config.x));
然后在你的模板中
Value x from the config: {{ value$ | async }}
请参见下面的工作示例