我想创建一个观察 属性 的函数,然后在 属性 达到 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/