Это потому, что ваша функция не имеет оператора возврата.
Внутренняя функция, которая вызывается как параметр для geocoder.getLatLng
, имеет оператор return, что вас смущает. Я предлагаю вам извлечь внутреннюю функцию, чтобы уменьшить запутанные аспекты.
Попробуйте это:
function convert_to_null_if_falsy(value) {
return value || "null";
}
function getLongLat(address) {
geocoder = new GClientGeocoder();
return geocoder.getLatLng(address, convert_to_null_if_falsy);
}
Я не уверен, почему вы хотите вернуть строку "null"
вместо undefined
в вашей функции обратного вызова, но этот код делает то же самое с гораздо меньшими хлопотами.