我的目標是在 percentChages() 達到 100 后重繪 視圖:
價值:
this.uploadPercent = task.percentageChanges();
我要創建的功能:
refreshView(){
Once this.uploadPercent == 100;
window.location.reload();
}
一個標準回圈似乎對這個資源過于密集,輕一點會很好。
uj5u.com熱心網友回復:
您可以使用 rxjs 和 Observables(內置 angular)。
例如將 uploadPecent 實體化為:
uploadPercent = new BehaviorSubject<number>(0);
然后你可以設定 this 的值,與之前類似:
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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475394.html
上一篇:只接受給定物件的鍵
