這是一個棘手的問題,因爲代碼完全正常工作,它只是激發了我的審美意識,有點微不足道。我正在轉向堆棧溢出,因爲我的大腦現在正在讓我失望。Javascript回調函數和遞歸
下面是使用Google Maps JS API查找地址並在地圖上放置標記的代碼片段。但是,有時最初的查找失敗,所以我想用不同的地址重複該過程。
geocoder.getLatLng(item.mapstring, function(point) {
if (!point) {
geocoder.getLatLng(item.backup_mapstring, function(point) {
if (!point) return;
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
return;
}
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
(至getLatLng
第二個參數是一個回調函數。)
當然,你可以看到,該居中和縮放地圖,並添加標記的三條線是重複的,一旦在初級回調並在「回退回調」中一次(哈哈)。你可以找到一種方法來表達整個事情沒有任何冗餘?如果您的解決方案適用於任意數量的備份映射字符串,您就可以獲得獎勵積分和我的讚美。
您不需要文字命名,您可以使用我在解決方案中使用的內容 - arguments.callee指向該函數。 – 2008-11-09 06:43:54