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!);
});
我正在用 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!);
});