Сначала undefined, а после - корректное значение

Функция сначала возвращает undefined, а после - корректное значение. Сама функция представляет собой запрос на чтение данных из базы данных firebase. Вот сама функция:

exports.readData = function(ref) {
    let data;
    ref.on("value", function(snapshot) {
        if(snapshot.val()) data = snapshot.val();
    });
    return data;
};

Фрагмент кода, в котором вызывается функция:

module.exports.run = async (bot, message, args) => {
  message.channel.send('pong!');
  let ref = chillbotDBWork.newRef(`/${message.author.id}`);
  let data = chillbotDBWork.readData(ref);
  console.log(data);
};

Может нужно использовать callback'и, но я не знаю как их использовать их правильно. Буду рад, если кто-то подскажет в чём может быть проблема и как её решить.


Ответы (0 шт):