Angular 5 - 最后实现订阅

Angular 5 - implementing finally on subscribe

我正在用 Angular 5 编写应用程序。

我正在使用 ion-refresher 来刷新页面,如果出现错误或返回成功,我想取消微调器,所以基本上是一个 finally 块。

我需要刷新以停止旋转并返回到任何结果(成功或错误)的默认位置。

如何使用我的代码实现此目的?这是我尝试过的方法,但出现错误:

html

<ion-content>
    <ion-refresher slot="fixed" (ionRefresh)="refresh($event)"></ion-refresher>
        <div *ngIf="data">
         {{ data }}
        </div>
</ion-content>

组件

export class UserInfoComponent implements OnInit {

    data: any;

    constructor(private userInfoService: UserInfoService) {}

    ngOnInit() {

        this.userInfoService
            .getEmployeeInfo()
            .subscribe((response) => {
              this.data = response;
            });
    }

    refresh(event) {

        this.userInfoService
            .getEmployeeInfo()
            //.pipe(
              //.finally(() => event.complete())
            //)
            .subscribe((response) => {
              this.data = response;
              event.complete(); //this works but what if there was an error
            })
            //.finally(() => event.complete());
            //Property 'finally' does not exist on type 'Subscription'.
    }

}

您需要在 subscribe 方法之前添加 finalize 而不是 finally

.getEmployeeInfo()
            .pipe(finalize(() => { 
               event.complete()
             }))

是的,没有点.这对你有帮助

使用subscribe时:

someObservable.subscribe(
  (response) => {
      // do something when data is received
      console.log(response);
  }),
  (err) => {
      // do something on error
      console.error(err)
  },
  () => {
      // do something when operation successfully complete
      console.log('success!);
});