Angular/RxJs:通过异步管道订阅不';发射值
我实例化了一个类“Calc”,它返回一个作为成员的可观察对象 在模板内部,我通过异步管道订阅了observable,可以看到它在控制台中每秒都会发出值,但这些值不会打印到输出(在模板中介于[]之间):Angular/RxJs:通过异步管道订阅不';发射值,angular,rxjs,Angular,Rxjs,我实例化了一个类“Calc”,它返回一个作为成员的可观察对象 在模板内部,我通过异步管道订阅了observable,可以看到它在控制台中每秒都会发出值,但这些值不会打印到输出(在模板中介于[]之间): 从“@angular/core”导入{Component,VERSION}”; 从“rxjs”导入{interval,Observable}; 从“rxjs/operators”导入{map}; 类计算{ 向左走$():可见{ 返回间隔(1000)。管道( 映射(val=>{ const ret=
从“@angular/core”导入{Component,VERSION}”;
从“rxjs”导入{interval,Observable};
从“rxjs/operators”导入{map};
类计算{
向左走$():可见{
返回间隔(1000)。管道(
映射(val=>{
const ret=new Date().toString();
控制台日志(ret);
返回ret;
})
);
}
}
@组成部分({
选择器:“我的应用程序”,
模板:`
[{{calc.left$| async}}]
`
})
导出类AppComponent{
计算=新计算();
}
问题到底是什么(zone.js?)以及如何解决它?您的getter就像一个函数一样被调用(每次运行更改检测),这意味着返回的值总是一个新的可观察值。至少我是这么想的。试试这个:
@Component({
selector: "my-app",
template: `
[{{ date | async }}]
`
})
export class AppComponent implements OnInit {
calc = new Calc();
date: Observable<string>
ngOnInit() {
this.date = this.calc.left$;
}
}
@组件({
选择器:“我的应用程序”,
模板:`
[{{date | async}}]
`
})
导出类AppComponent实现OnInit{
计算=新计算();
日期:可观察
恩戈尼尼特(){
this.date=this.calc.left$;
}
}
@Component({
selector: "my-app",
template: `
[{{ date | async }}]
`
})
export class AppComponent implements OnInit {
calc = new Calc();
date: Observable<string>
ngOnInit() {
this.date = this.calc.left$;
}
}