Angular 检测变量何时为Typescript中的某个值
我正在处理我的应用程序的非活动超时。当检测到不活动时,将启动一个模式。模式向用户显示计时器。当计时器(计数器)点击0时,我希望能够知道计数器为0,这样我就可以实现注销用户的逻辑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
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操作符时,有时我会觉得很傻。。。