Angular 检测变量何时为Typescript中的某个值

Angular 检测变量何时为Typescript中的某个值,angular,typescript,rxjs,observable,Angular,Typescript,Rxjs,Observable,我正在处理我的应用程序的非活动超时。当检测到不活动时,将启动一个模式。模式向用户显示计时器。当计时器(计数器)点击0时,我希望能够知道计数器为0,这样我就可以实现注销用户的逻辑 export class IdleModalComponent implements OnInit { counter$: Observable<number>; count = 300 // 5 minutes for the user to respond before we implement

我正在处理我的应用程序的非活动超时。当检测到不活动时,将启动一个模式。模式向用户显示计时器。当计时器(计数器)点击0时,我希望能够知道计数器为0,这样我就可以实现注销用户的逻辑

export class IdleModalComponent implements OnInit {

counter$: Observable<number>;   
count = 300 // 5 minutes for the user to respond before we implement the inactivity logic

constructor(public dialogRef: MatDialogRef<IdleModalComponent>) {
        this.counter$ = timer(0, 1000).pipe(
        take(this.count), 
        map(() => (--this.count)), 
    );
  }
}
当我绑定HTML中可观察的计数器时,它会准确地显示倒计时。我所需要的只是能够捕获以下情况:

this.count==0。

这是this.counter$完成的时间

这个柜台$ 订阅 =>{},//每次计数更新 =>{},//错误 => { //已完成且'this.count==0` } 工作演示

当这个计数器$完成时

这个柜台$ 订阅 =>{},//每次计数更新 =>{},//错误 => { //已完成且'this.count==0` } 工作演示

计时器

要习惯地使用map函数,不要在其中造成任何副作用,只需映射接收到的值即可

最后,为了观察完成情况:

订阅可观察到的 传入完整回调 计时器

要习惯地使用map函数,不要在其中造成任何副作用,只需映射接收到的值即可

最后,为了观察完成情况:

订阅可观察到的 传入完整回调 您可以使用tap rxjs操作符,而无需直接订阅,如下所示:

this.counter$ = timer(0, 1000).pipe(
  take(this.count),
  map(() => (--this.count)),
  tap(val => {
    if (val === 0) {
      // do what you want such as show modal
      alert('The count is 0');
    }
  })
)
您可以使用tap rxjs操作符,而无需直接订阅,如下所示:

this.counter$ = timer(0, 1000).pipe(
  take(this.count),
  map(() => (--this.count)),
  tap(val => {
    if (val === 0) {
      // do what you want such as show modal
      alert('The count is 0');
    }
  })
)

这正是我要找的!作为一个有一年多时间的Angular开发者,当我不知道简单的rxjs操作符时,有时我会觉得很傻……这正是我想要的!作为一个有一年多时间的Angular开发者,当我不知道简单的rxjs操作符时,有时我会觉得很傻。。。