簡體   English   中英

回調函數中變量的值-Google Maps

[英]Value for variable in callback function - Google Maps

我正在嘗試將Google地圖標記放置在陸地(大陸)或水上(海洋)的返回值。 當我嘗試使用控制台日志時,將標記放置在陸地上應該為真,而將標記放置在水上則應該為假。 但是,標記的值似乎落后了一步:例如,將其放置在水上將返回true,然后將其放置在陸地上將返回false,但是將其再次放置在土地上將再次返回true。

如何在Geocoder回調函數中獲取“結果”變量的正確值?

為什么我得到的結果不理想?如何解決?

謝謝。

  var result = true;
        function checkMarkerOnLand(event) {

            var geocoder = new google.maps.Geocoder();

            geocoder.geocode({

                "latLng" : event.latLng

            }, function(results, status) {

                if (status !== google.maps.GeocoderStatus.OK) {

                    result = false;
                    //return result;

                } else {

                    result = true;
                    //return result;

                }

            });

            return result;

        }

回調的要點是:-向服務發送請求(該服務可能在其他服務器上)。
-服務就緒時,它將觸發您選擇的回調(=您編寫自己的函數)。

(這等同於打電話給某人以詢問朋友的電話號碼。他現在不知道,但是當他打電話時會給您回電)

發送請求后,代碼將繼續。 因此,直接在發送geocoder.geocode()之后,將在服務准備就緒之前執行返回結果。

因此,不能,您不能將checkMarkerOnLand()用作返回結果的函數。 更改邏輯,以便無論您打算如何執行該結果,都可以在回調中進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM