It is a async function call, you need to put alert in your ajax success function
function ajaxTest() {
let currencyRate = "";
$.ajax({
url: "http://free.currencyconverterapi.com/api/v5/convert?q=USD_INR&compact=y",
dataType: "jsonp",
success: function(json) {
let myObject = JSON.parse(json);
currencyRate += myObject.USD_INR.val;
// put alert here
alert(currencyRate);
}
})
}
Or a better approach would be like below.
ajaxTest().then(function( json ) {
let myObject = JSON.parse(json);
currencyRate += myObject.USD_INR.val;
// put alert here
alert(currencyRate);
});
Or even use callbacks as follows:
function ajaxTest( callback ) {
let currencyRate = "";
$.ajax({
url: "http://free.currencyconverterapi.com/api/v5/convert?q=USD_INR&compact=y",
dataType: "jsonp",
success: function(json) {
let myObject = JSON.parse(json);
currencyRate += myObject.USD_INR.val;
callback(currencyRate);
}
})
}
ajaxTest(function( result ) {
alert(result)
})
Updated
No need to parse the return json at all.
function ajaxTest() {
let currencyRate = "";
$.ajax({
url: "http://free.currencyconverterapi.com/api/v5/convert?q=USD_INR&compact=y",
dataType: "jsonp",
success: function(json) {
// no need to parse it to json anymore
// let myObject = JSON.parse(json);
currencyRate += json.USD_INR.val;
// put alert here
alert(currencyRate);
}
})
}
ajaxTest();
The above code should work, since the return json itself is a json and no need to parse it to json anymore.