我已经成功实现了一个加载器,现在我想在http请求成功返回时(而不是在可以在“加载控制器”的duration
属性中设置的特定超时之后)关闭它。我的http请求是在服务中完成的,订阅了该服务后,我尝试关闭加载程序,但是它不起作用:
constructor(public LoadingController: LoadingController, public _service: SomeService) {
...
this.loader = this.LoadingController.create({
content: "Fetching Surveys..."
});
this.loader.present();
...
this._service.getproducts()
.subscribe(
surveys => this.services = services,
() => this.loader.dismiss()
);
}
答案 0 :(得分:2)
您可以利用complete
的{{1}}回调,该回调将在服务的subscribe
或success
响应上执行。
error
答案 1 :(得分:0)
来自documentation subscribe
的界面为:
public subscribe(observerOrNext: Observer | Function, error: Function, complete: Function): ISubscription
例如,您可以使用此:
this._service.getproducts().subscribe(
surveys => {
this.services = services;
this.loader.dismiss();
},
() => this.loader.dismiss()
);