У меня есть Observable.timer
внутри провайдера, которому я звоню с определенной страницы.Я также передаю функцию поставщику Observable, и когда он завершит обратный отсчет, она вызовет функцию, расположенную на начальной странице.Но я получаю сообщение об ошибке после окончания таймера:
Примечание : я импортировал View Controller внутри страницы, но не провайдера (я получаю другую ошибку, если пытаюсь импортироватьView Controller внутри провайдера)
ОШИБКА
1 произошла ошибка при отмене подписки: ↵ 1) TypeError: Невозможно прочитать свойство 'viewCtrl' из неопределенного
СТРАНИЦА
newTimer() {
this.countDown = this.timerProvider.newTimer(this.endTimer); //pass function below
}
endTimer() {
const indexModal = self.viewCtrl.index;
// then we remove it from the navigation stack
//this.navCtrl.remove(2);
self.navCtrl.push(WinnersPage, {
gameId: self.gameId
}).then(() => {
});
console.log('timer ENDED');
}
ПРОВАЙДЕР
countDown: any;
counter = 1*100;
tick = 1000;
constructor(public http: HttpClient) {
//console.log('Hello TimerProvider Provider');
}
newTimer(endTimer) {
return Observable.timer(0, this.tick)
.take(this.counter).map(() => --this.counter)
.finally(() => endTimer());
}