Вам не хватает некоторых самых базовых понятий асинхронного JavaScript.Я вижу, что вы используете синтаксис async / await.По сути, async / await - лучший синтаксис для Promises.Это обещает с лучшим / более читаемым синтаксисом.async / await был введен, чтобы дать лучший способ кодирования и вырваться из так называемого «ада обратного вызова».Теперь то, что вы делаете здесь - это смешивание обоих этих синтаксисов.Либо используйте async / await, либо используйте синтаксис .then / .catch.Я думаю, что код, написанный ответом Лукаша здесь, идеально подходит для вашей реализации.