0

microAjax関数内のスコープ外の変数を取得できるようにこれを修正する方法はありますか?

latlngがmicroAjaxの外部でipaddressの値を取得するようにします。

var latlng = microAjax("php/latlng.php", function(ipaddress) {
            console.log(ipaddress);
            return ipaddress;
        });

        console.log(latlng);

私もこのようなことを試しました:

var lat;
var lng;
microAjax("php/latlng.php", function(ipaddress) {
            var arrayOfLocation = ipaddress.split(" ");
            lat = parseFloat(arrayOfLocation[0]);
            lng = parseFloat(arrayOfLocation[1]);
            console.log(ipaddress);
        });

        console.log(lat);
        console.log(lng);

ただし、どちらの場合も、関数外の変数は未定義です。microAjaxから変数を定義するにはどうすればよいですか?ただし、その範囲外ですか?

4

1 に答える 1

1

問題は非同期呼び出しであり、スコープではありません。

2番目の例でlatとlngを出力すると、ajaxは終了します。

jquery ajax内で、パラメーターasyncがそれを修正します。 http://api.jquery.com/jQuery.ajax/(jquery を使用している場合)

于 2013-01-28T18:51:17.007 に答える