combining asynchronous data with twitter api

here is my first asynchronous function to dynamically return follower count, i will use this function in the next function

    async function followersCount(id) {
  try {
    const count = await needle("get", `${followCountURL}${id}`, {
      headers: {
        Authorization: `Bearer ${TOKEN}`,
      },
    });
    return count.body.followers_count;
  } catch (err) {
    console.error(error);
  }
}

i now want to push an object into an array which i will eventually send to the client,

async function streamTweets() {
  const stream = needle.get(streamURL, {
    headers: {
      Authorization: `Bearer ${TOKEN}`,
    },
  });
  const cast = [];
  stream.on("data", (data) => {
    try {
      const json = JSON.parse(data);
      cast.push({
        id: json.includes.users[0].id,
        name: json.includes.users[0].name,
        text: json.data.text,
        followers: followersCount(json.includes.users[0].id),
      });
      console.log(cast);
      
    } catch (error) {}
  });

  return stream;
}

i called the function by

(async () => {
  try {
    await streamTweets();
  } catch (error) {
    console.error(error);
    process.exit(1);
  }
})()

and the result looks like this

[
  {
    id: '404970310',
    name: 'All American Moonchild',
    text: 'Alright I do wanna real with y’all for a second. For those of you have experienced their first major pull back this IS the nature of bitcoin. Nothing about this is manipulated. It’s profit taking and whales trying to shake you out. Play reserved, use stop losses and hodl on.',
    followers: Promise { 2209 }
  },
  {
    id: '168227922',
    name: 'Jose A Rodriguez',
    text: 'RT @maxkeiser: Short term $65K in play \n' +
      '\n' +
      '2021 high $220K in play \n' +
      '\n' +
      '#Bitcoin',
    followers: Promise { <pending> }
  }
]

i just cant seem to get the followers to return an actual number