Fonctions de rappel Javascript et récursivité

C'est une sorte de casse-tête question, étant donné que le code fonctionne parfaitement bien, il irrite juste mon sens de l'esthétique très légèrement. Je suis passant à Débordement de Pile parce que mon propre cerveau est de ne pas en moi.

Voici un extrait de code qui ressemble à une adresse à l'aide de Google Maps API JS et place un marqueur sur une carte. Cependant, parfois, la première recherche échoue, je tiens donc à répéter le processus avec une adresse différente.

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));
})

(Le deuxième paramètre à getLatLng est une fonction de rappel.)

Bien sûr, vous pouvez voir que les trois lignes du centre et de zoom de la carte et ajouter le marqueur sont dupliqués, une fois dans le primaire de rappel et une fois dans le "repli de rappel" (ha, ha). Pouvez-vous trouver un moyen pour exprimer tout ça, sans aucune redondance? Vous gagnez des points de bonus, et mon adulation, si votre solution fonctionne pour un nombre arbitraire de sauvegarde de la carte des chaînes.

source d'informationauteur lawrence