$('.get_location').on('click',function(){ findLatLonFromIP().then( function(value) { var lat = value.lat var lng = value.lng console.log(lat) console.log(lng) getCountryCodeFromLatLng(lat,lng) }) }) function findLatLonFromIP() { return new Promise((resolve, reject) => { $.ajax({ url: `https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyD********nDlXF60Ro`, type: 'POST', data: JSON.stringify({considerIp: true}), contentType: 'application/json; charset=utf-8', dataType: 'json', success: (data) => { if (data && data.location) { resolve({lat: data.location.lat, lng: data.location.lng}); } else { reject('No location object in geolocate API response.'); } }, error: (err) => { reject(err); }, }); }); }function getCountryCodeFromLatLng(lat, lng) { return new Promise((resolve, reject) => { $.ajax({ url:
https://maps.googleapis.com/maps/api/geocode/json?latlng=${lat},${lng}&key=AIzaSyD********nDlXF60Ro
, type: 'GET', data: JSON.stringify({considerIp: true}), dataType: 'json', success: (data) => { console.log('reverse geocode:', data.results[0].address_components); data.results.some((address) => { address.address_components.some((component) => { if (component.types.includes('country')) { return resolve(component.short_name); } }); }); reject('Country not found in location information.'); }, error: (err) => { reject(err); }, }); }); }