Матвей
Но это ведь костыль, так? Как тогда сделать верно?
Ну как сказать костыль, просто, если это быстрое локальное решения, то не костыль. К примеру во Vue J's, это назвали nextTick.
Но по нормальному, как ты говоришь, это async await. Как я понимаю, у тебя там явно не ждут промисы 😂
Все зависит от кода, который в функции, если он несёт в себе важный функционал, который будет маштабировтаься, то конечно надо переписать.
А если там фендифлюшка какая то должна сработать, то оставь тайм-аут .
Это не костыль, а фича 😂 раньше так работала асинхронность 😂😂 шучу конечно. Но по факту, этот прием заставляет код так работать.