Angular 4载荷.dismiss()不起作用



我正在尝试执行loading.dismiss((handingerror((方法,但不确定该怎么做?响应良好时,它非常有效,不确定如何处理错误情况

请帮助

@Injectable()

导出类共享{

 private _postsURL = "https://jsonplaceholder.typicode.com/posts";
 constructor(private http: Http, public loadingCtrl: LoadingController) {
 }

 getPosts(): Observable<IPosts[]> {
    let loading = this.loadingCtrl.create({
        content: 'loading...'
      });
      loading.present();
     return this.http
         .get(this._postsURL)
         .map((response: Response) => {
            loading.dismiss();
            console.log("Result printed!!");
             return <IPosts[]>response.json();
         })
         .catch(this.handleError);

 }
  handleError(error: Response) {
      this.loading.dismiss();
     console.log("Err printed!!" + error.statusText);
     return Observable.throw(error.statusText);
 }

}

loading对象在您的handleError方法中不存在,因为它范围范围为getPosts(),因此您无法访问它,如果loading是全球设置或属性,则可能是可能的你的班级。我认为有几个解决方案可以解决:

首先要解散您的加载,然后致电handleError

// your getPosts method ...
.catch(err =>{
  loading.dismiss();
  this.handleError(err);
});

第二个(如所说(正在创建属性loading并使用它代替范围的加载对象。

 private _postsURL = "https://jsonplaceholder.typicode.com/posts";
 public loading;
 constructor(private http: Http, public loadingCtrl: LoadingController) {
 }
 getPosts(): Observable<IPosts[]> {
   this.loading = this.loadingCtrl.create({ content: 'loading...' });
   this.loading.present().then(() =>{
     return this.http
         .get(this._postsURL)
         .map((response: Response) => {
            this.loading.dismiss();
            console.log("Result printed!!");
             return <IPosts[]>response.json();
         })
         .catch(this.handleError);
   });
 }

还尝试将您的方法内容包裹在加载present()方法返回的承诺中,在加载(或任何其他可供使用的组件(之前,该方法dismiss()的并发错误甚至显示给用户。<<<<<<<<<<<<<。/p>

无论如何,其中一种解决方案可能对您有用,希望它有所帮助。

AM将为Inoic 4用户删除此

const loading = await this.loadingController.create({ message: 'Processing card' })
      loading.present().then( () => {
          getPostFunction({
              data: {email:"test@test.com"}
          }).then((response) => {
              loading.dismiss();
              console.log(response);
          }, (error) => {
               loading.dismiss();
              console.log(error)
          });
      })

相关内容

  • 没有找到相关文章

最新更新