0

私はまったくの JS 初心者で、単純な JS コードを少し構造化しようとしています。目標は、ユーザーの場所を取得することです。

動作しますが、getUserCoordinates 関数は値を返しませんか? 初心者からの論理的な失敗だと思いますか?

var app = {

geocoder: null,

init: function() {
    this.geocoder = new google.maps.Geocoder();
    coordinates = this.getUserCoordinates();
    console.log(coordinates); // empty??
    return;
},

getUserCoordinates: function() {

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition( 

            function (coords) { 
                console.log(coords); // works Geocoder Object!
                return coords; // the problem 
            }, // more code
4

1 に答える 1

2

いいえ、初心者にはよくある間違いです。このgetCurrentPositionメソッドは非同期で (場所を特定するのに時間がかかります)、何も返しません。終了すると、callback渡された関数が呼び出されます-将来のいつか。値は、そのコールバック内、またはそこから呼び出される関数でのみ使用できます。

于 2012-10-09T15:51:18.677 に答える