Поэтому я признаю, что каждый раз, когда я изучаю замыкания, я никогда не использую их и не забываю. Ниже я установил для логической переменной didGeoLocExecute
значение false. Затем я создаю тайм-аут. По истечении времени ожидания я проверяю, не было ли позже установлено значение didGeoLocExecute
в функции.
Оно устанавливается, но по истечении времени ожидания остается исходным значением. Является ли это проблемой закрытия, если да, то как мне с этим справиться?
private getGeoLocation(): Observable<any> {
let locObs = new Observable ( observer => {
let didGeoLocExecute: boolean = false;
setTimeout(() => {
if(!didGeoLocExecute){
console.log('TIME OUT! ' + didGeoLocExecute);
observer.error();
}
}, 15000);
let position: GeoCoordinates;
this.location.getCurrentPosition().subscribe(
location => {
didGeoLocExecute = true;
observer.next();
},
error => {
didGeoLocExecute = true;
observer.error();
}
);
});
P.S. Я почти уверен, что typescript и observables можно безопасно игнорировать ради этого вопроса.