Как остановить функции при выходе из страницы в Ionic 4 - PullRequest
0 голосов
/ 14 июня 2019

Я работаю в своем приложении Ionic 4 и хочу остановить функции, когда страница уйдет.

Это мой tab4.page.ts :

async getUserDetail(){ 
    this.dataexists = false;
    this.userActiveChallanges = [];   
    let me=this;   
    const loading = await this.loadingController.create({
      message: '',
      // duration: 2200,
      translucent: true,
      spinner: 'crescent',
      showBackdrop: false,
      cssClass: 'my-loading-class'
    });
    await loading.present();  
    this.userActiveChallanges=[];
    this.storage.get('USERPROFILE').then(userObj => { 
      // console.log('User Profile :',userObj);
      me.userprofile = userObj; 
      me.sendFitDatafunction(userObj);
      me.myapi.apiCall('userActiveChallenges/'+userObj.id,'GET','').subscribe((data) => {
        // console.log(data); 
        me.response=data;       
        loading.dismiss();
        if(me.response.status === 'success'){
          if(me.response && me.response.data && me.response.data.length>0){
            this.userActiveChallanges=me.response.data;
            this.flip(this.userActiveChallanges[0].challenge_id);
          }
          this.dataexists = true;
        } else{
          this.userActiveChallanges = '';
          this.dataexists = true;
        }

      }, error => { loading.dismiss(); console.log(error); });

    });
  }

  ionViewWillLeave() {

  }

Я хочу остановить эту функцию, когда страница закроется, потому что, когда я не получаю ни ответа, ни ошибки от API, который продолжает работать загрузчик, и когда я перехожу на другую страницу, она там отображается.

Итак, я хочу остановить функцию, когда страница уйдет.

Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 17 июня 2019

вместо локальной загрузки const, объявите его как свойство вашего класса ts (tab4).

Теперь измените свой код и присвойте ему загрузчик:

заменить: const loading с:

this.loading

Теперь внутри вызова ionViewWillLeave:

ionViewWillLeave() {
    if (this.loading) { this.loading.dismiss() }
} 
0 голосов
/ 14 июня 2019

Ну, я не знаю функцию, чтобы остановить вашу функцию, но чтобы сделать что-то, когда вы покидаете страницу, вы делаете это в IonViewDidLeave ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...