вызов ajax - это синхронные вызовы, поэтому вы никогда не получите ответ.
Там два варианта:
- прохождение обратного вызова
- используйте обещания
- есть
await - async
но не по теме для этого вопроса
Итак, в этом примере, который вы разместили, вы должны сделать:
function ip2db(your_callback){
var result;
$.getJSON('https://api.ipgeolocation.io/ipgeo?apiKey=a759dab4af1f462496dda90b3575f7c7', function(data) {
var ip_data = JSON.stringify(data, null, 2);
$.post("https://mywebsite.com/ip2db.php",
{
ip_data
},
function(data, status){
console.log("data: " + data + "\nStatus: " + status);
CreateUserStorage(data);
result = data;
your_callback(result)
}
);
});
}
Вы называете это так:
ip2db(function(result) {
console.log(result);
})