Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular/RxJs:通过异步管道订阅不';发射值_Angular_Rxjs - Fatal编程技术网

Angular/RxJs:通过异步管道订阅不';发射值

Angular/RxJs:通过异步管道订阅不';发射值,angular,rxjs,Angular,Rxjs,我实例化了一个类“Calc”,它返回一个作为成员的可观察对象 在模板内部,我通过异步管道订阅了observable,可以看到它在控制台中每秒都会发出值,但这些值不会打印到输出(在模板中介于[]之间): 从“@angular/core”导入{Component,VERSION}”; 从“rxjs”导入{interval,Observable}; 从“rxjs/operators”导入{map}; 类计算{ 向左走$():可见{ 返回间隔(1000)。管道( 映射(val=>{ const ret=

我实例化了一个类“Calc”,它返回一个作为成员的可观察对象

在模板内部,我通过异步管道订阅了observable,可以看到它在控制台中每秒都会发出值,但这些值不会打印到输出(在模板中介于[]之间):

从“@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$;
  }
}