Как «сломать» Observable и перейти на другую страницу в Ionic? - PullRequest
0 голосов
/ 26 апреля 2018

извините за запутанный вопрос. Так что в настоящее время я работаю с этим блоком кода в Ionic, это выглядит так:

home.ts:

ionViewDidLoad() {
    this.myFunction().subscribe()( data => {

        // Do some stuff here, then 
        // open another page/modal with the data received

        this.openModal(anotherPage,data);
    }
}

Проблема, я считаю, в том, что мне нужно что-то сделать, чтобы «отписаться» от моей текущей функции, так как она вызывается каждую секунду. Я попытался поместить весь код в ionViewDidLoad , полагая, что при переходе на другую страницу функция будет приостановлена, но она просто не работает.

openModal(zone) {
    let modal = this.modalCtrl.create(ZonePage, { 'zone': zone });
    modal.present();
  }

Есть идеи, чтобы решить эту ситуацию?

1 Ответ

0 голосов
/ 26 апреля 2018

одно решение может быть:

ionViewDidLoad() {
    let sub = this.myFunction().subscribe( data => {
        // Do some stuff here, then 
        // open another page/modal with the data received
        sub.unsubscribe();
        this.openModal(anotherPage,data);
    }
}

еще один (когда вы знаете, как часто он излучает перед тем, как запустить модал):

ionViewDidLoad() {
    this.myFunction().take(10).subscribe( data => {
        // Do some stuff here, then 
        // open another page/modal with the data received
        this.openModal(anotherPage,data);
    }
}
...