簡體   English   中英

在RxJS中承諾“最終”回調等價物

[英]Promise 'finally' callback equivalent in RxJS

我有一個從API獲取一些數據的組件。 該組件有一個loading成員變量,用於確定是否應顯示加載圖標。 當數據提取完成時, loading設置為false,以隱藏加載圖標。 無論是否發生錯誤,都應該發生這種情況。

目前,我已實現如下:

export class MyComponent implements OnInit {

  loading = true;
  data;

  constructor(private dataService: DataService) { }

  ngOnInit() {
    this.dataService.getData().subscribe(data => {
      this.data = data;
      this.loading = false;
    },
    () => {
      this.loading = false;
    });
  }

}

我想知道是否有辦法消除this.loading = false的重復。 如果我使用Promises ,這就是我使用Promise.finally()回調的原因 - 但我不是。 在RxJS中是否存在等價物,或者更好的方法來實現它?

從RXJS 5.5開始,使用“finalize”運算符:

ngOnInit() {
  this.dataService.getData()
  .pipe(
    finalize(() => this.loading = false)
  )
  .subscribe(data => {
    this.data = data;
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM