Как вернуть из асинхронных функции результат?
Вы ее не возвращаете. Лол
Весь смысл асинхронности в том, что вы не возвращаете результат в основной скрипт, вы не дожидаетесь этого результата. Все, что вы хотите сделать с результатом - нужно делать в пределах колбэк функции.