[英]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.