Считайте, что то, что внутри onclick - это отдельный поток (хотя это не так, но так удобней). То есть это отдельная точка входа в скрипт. Таким образом, всё, что внутри onclick случится только в будущем и вы не можете брать оттуда значения здесь и сейчас. Вы можете использовать значения, полученные в будущем только в еще более далеком будущем.
Таким образом, нужно менять логику построения вашего скрипта, его архитектуру. А именно, перестать хотеть невозможного, то есть хотеть использовать значения, которых пока еще нет.
Код внутри onclick в момент клика становится главным, и использует остальные функции по своему усмотрению. Поиспользовал, и всё. Возможно, какой-то результат сохранил куда-то в глобальную переменную для друзей. То есть это как бы не вспомогательная функция, а главная.
Как именно и что поменять, сложно сказать, потому что код абстрактный, и не ясно, что он делает. Был бы практический смысл, можно было бы переписать в соответствии с конкретной целью.