Geocoder reverso retornando indefinido

Então, eu estou usando o geocodificador inverso do google, então o que eu originalmente faço é digitar um endereço como, tokyo, então eu pego aquele latlng e coloco de volta no geocodificador para receber o nome próprio do local, mas ele apenas retorna indefinido. Meu código é:

var geocoder = new google.maps.Geocoder();
var place = document.getElementById("location").value;
var name;
var place_latlng;
geocoder.geocode({'address' : place}, function(results, status){
  if (status == google.maps.GeocoderStatus.OK){
    place_latlng = results[0].geometry.location;
    addMarker(place_latlng);
  }
});
geocoder.geocode({'latLng' : place_latlng},function(results, status){
  if (status == google.maps.GeocoderStatus.OK){
    name = results[0].formatted_address;
  }
});

o nome acaba sendo indefinido toda vez, existe uma maneira de eu consertar isso?

questionAnswers(1)

yourAnswerToTheQuestion