Okay, so my code is pulling data from a yelp business using their official API. My problem is that I can't seem to get the data to return out of the function. The problem isn't in ejs, it's that the data doesn't return when I tell it to! I just get undefined with some attempts, and with others (including the one I'm going to show here), I get an empty array. I'm pasting only the code that's important, let me know if you need more!
 function yelp(){
  var b = [];
  var i = 0;
 (struck the initialization of client)
client.business("(struck)", function(error, data) {
      if (error != undefined){
        res.send("an error occured. exiting");
        process.process.reallyExit();
      }
      b[i++] = data.name;
      b[i++] = data.display_phone;
      b[i++] = data.rating;
      console.log(b); //NEW!!
    });
    console.log(b);
    return b;
}
app.get('/yelp', function(req,res){
     var arr = yelp();
     console.log(arr);
     res.render('yelp.ejs', {title: 'Yelp!', arr: arr});   
  });
}
I added one more line of code, that I THINK may have narrowed down the problem to being related to my poor internet connection. I added ANOTHER console.log(b), this time inside of the business API call. the console.log(arr) is shows second, the console.log(b); just before the reutrn shows first, and LAST is the console.log(b) INSIDE the API call. It also took a good 30 seconds for that log to appear, and it appeared AFTER the page loaded. So, how do I go about making the page wait for the data? Or is this unrelated to my problem?
 
     
     
    