Po prostu chciałbym żeby ona się zapisała do zmiennej globalnej którą definiuję na początku
Ona się zapisuje do zmiennej globalnej. Z tym, że console.log wykonuje się zanim Promise zostanie rozwiązany. Polecam obejrzeć tą prezentację o asynchroniczności i tę szerzej obrazującą kolejkowanie. A dla lepszego poznania tematu przeczytaj tą książkę - jest tego sporo, ale naprawdę warto.
Da się to zapytanie wykonać synchronicznie
Tak, ale nie jest to zalecana praktyka.
, albo inaczej - generować zmienną globalną postac po tym jak pobiorą się dane z api
To nie zmieni sytuacji, bo czy zadeklarujesz zmienną globalną na początku, czy w callbacku do Promise - i tak wartość będziesz mieć dopiero po zwrotce danych.
Wykorzystaj dane otrzymane z Promise właśnie tam, gdzie przypisujesz je do zmiennej, albo przekaż je jako parametr do innej funkcji, która te dane obrobi.