2013-05-20 4 views
0

J'essaye d'écrire une fonction qui renvoie la géolocalisation en utilisant html5. Cependant, ma fonction ne revient jamais. Comment venir?HTML5 get la fonction de géolocalisation

function getCurLocation() { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     return [position.coords.latitude, position.coords.longitude]; 
    }); 
} 
+0

ajouter un 'return' avant' navigator.geolocation.' – karthikr

+0

@karthikr J'ai aussi essayé. – drum

Répondre

2

navigator.geolocation.getCurrentPosition est un appel asynchrone. Comme avec tout Ajax, vous ne pouvez pas retourner sa valeur de manière synchrone avec le reste du code. Vous ne pouvez pas savoir quand il va terminer ou même si il se terminera. Tout travail qui repose sur la réponse (position dans ce cas) de l'appel ajax doit être fait dans le rappel ajax.

+0

Y a-t-il un quelconque moyen d'attendre jusqu'à la fin pour revenir? – drum

+0

@drum autant que je peux dire que vous ne pouvez pas, mais pourquoi voudriez-vous? Cela bloquerait le navigateur jusqu'à la fin de l'opération. –

+0

Mon application obtient initialement l'emplacement actuel de l'utilisateur. Cependant, l'utilisateur peut changer son emplacement plus tard. Je ne souhaite pas que l'emplacement soit réinitialisé à l'emplacement actuel chaque fois que la page est actualisée. – drum

Questions connexes