I am trying to build a simple web app that pulls API data on the price of Bitcoin. I am able to parse the data and extract the price. However, given the asynchronous nature of Node.js, when I try to return the data it returns before the http request is complete.
This is why I inserted the callback function. However, when it returns the price it is still undefined. Hence, I assume that the request is not complete when the return is sent even with the callback?
I have also heard of other solutions such as promises and async yet I cannot find a way to return the price variable from the function. I need to be able to do this so that I can do separate calculations on the returned variable.
Disclaimer: I am a node newbie so any help would be appreciated
var https = require('https');
function myCallback(result) {
 return result;
}
var price = 0;
function getData(callback) {
 var url = "https://api.coinbase.com/v2/prices/spot?currency=USD";
 https.get(url, function(res){
 var body = '';
 res.on('data', function(chunk){
  body += chunk;
 });
 res.on('end', function(){
  var exData = JSON.parse(body);
  price = Number((exData.data.amount))*14.5;
  callback(price);
 });
}).on('error', function(e){
 console.log("Got an Error: ", e);
});
};
var y = getData(myCallback);
console.log(y); 
    