我是Javascript編程的新手,已在許多地方查找過此信息,但尚未找到一個工作解決方案,因此我在此處發佈此問題。使用從Javascript中的回調函數返回
在for循環我試圖請求的區域的POI(所述路線的腿) -
service.search(request, callback);
其中請求包括如位置和查詢類型POI的參數。我已經實現如下的回調函數 -
function callback(myResults, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
alert('myResults: ' + myResults.length);
// entire remaining code here, where I do some processing on the POIs.
}
}
此代碼工作,並在該路線的每腿我能看到興趣點,並使用警報還顯示數量的POI。
我的問題是,我不想在這裏爲每條腿處理「myResult」,但是收集整條路線的所有結果(由多條腿組成),然後立即執行處理。
我首先想到創建一個全局變量(「myPOIs」),並在每條腿追加「myResults」,一旦整條路線進行解析,然後處理此myPOIs,但我不能(或我不知道如何)將這個myResults追加到一個全局變量myPOIs。
另一種選擇,我想到的是從回調函數中獲取返回值(myResults),然後收集(附加)所有結果。
1和2之間的唯一區別是,在如圖1所示,其一個全局變量我將追加myResults到if條件內,並且在圖2,如果if條件爲真,那麼myResults返回service.search然後在那裏收集結果。
我嘗試使用myPOIs.push(myResults)和其他一些選項,但是當我檢查myPOIs.length時,它始終爲空。我真的不知道如何從回調函數中獲取myResults。
任何建議/ throughts/help對我來說都是非常有用的。
而我只想使用javascript而沒有其他任何東西。
非常感謝提前, AXS
你還可以加入for循環代碼嗎? –