我想创建一个观察 属性 的函数,然后在 属性 达到 100 时调用一个函数
I want to create a function that observes a property then calls a function once the property reaches 100
我的目标是在 percentageChages() 达到 100 时刷新视图:
值:
this.uploadPercent = task.percentageChanges();
我要创建的函数:
refreshView(){
Once this.uploadPercent == 100;
window.location.reload();
}
对于这个来说,标准循环似乎太耗费资源了,一些简单的东西会很好。
您可以使用 rxjs 和 Observables(angular 内置)。
例如将 uploadPecent 实例化为:
uploadPercent = new BehaviorSubject<number>(0);
然后你可以像以前一样设置这个值:
uploadPercent.next(task.percentageChanges());
然后您所要做的就是像这样设置管道(可以在 ngOnInit 生命周期挂钩中执行此操作):
this.uploadPercent.pipe(
takeUntil(this.destroy$)
).subscribe(x => {
if (x >= 100) {
window.location.reload();
}
});
destroy$ 被实例化到:
destroy$ = new Subject<void>();
并且销毁模式在 ngOnDestroy 中完成(这可以防止订阅的内存泄漏):
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
您可以在此处的官方文档中找到有关 rxjs 的更多信息:
https://rxjs.dev/guide/overview
或者这个网站也很适合提供信息:
https://www.learnrxjs.io/
我的目标是在 percentageChages() 达到 100 时刷新视图:
值:
this.uploadPercent = task.percentageChanges();
我要创建的函数:
refreshView(){
Once this.uploadPercent == 100;
window.location.reload();
}
对于这个来说,标准循环似乎太耗费资源了,一些简单的东西会很好。
您可以使用 rxjs 和 Observables(angular 内置)。
例如将 uploadPecent 实例化为:
uploadPercent = new BehaviorSubject<number>(0);
然后你可以像以前一样设置这个值:
uploadPercent.next(task.percentageChanges());
然后您所要做的就是像这样设置管道(可以在 ngOnInit 生命周期挂钩中执行此操作):
this.uploadPercent.pipe(
takeUntil(this.destroy$)
).subscribe(x => {
if (x >= 100) {
window.location.reload();
}
});
destroy$ 被实例化到:
destroy$ = new Subject<void>();
并且销毁模式在 ngOnDestroy 中完成(这可以防止订阅的内存泄漏):
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
您可以在此处的官方文档中找到有关 rxjs 的更多信息: https://rxjs.dev/guide/overview 或者这个网站也很适合提供信息: https://www.learnrxjs.io/