微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-在RxJS中承诺’finally’回调等效

我有一个从API提取一些数据的组件.该组件具有加载成员变量,该变量用于确定是否应显示加载图标.数据获取完成后,将加载设置为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;
  });
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐