IndexedDB является асинхронным, и ваш код проверяет dbExist синхронно, поэтому он не будет работать.Вы можете использовать localStorage для установки значения - поэтому, когда db создается, вы устанавливаете значение в true и по умолчанию устанавливаете его в false при запуске вашего приложения.
, поэтому при запуске вашего приложения вам нужно выполнить приведенный ниже код-
var isDbCreated = localStorage.getItem('is_db_created')==='true';
if(!isDbCreated){
localStorage.setItem('is_db_created','false');
}
и внутри onupgradeneeded при создании дБ вы устанавливаете его в значение true -
localStorage.setItem('is_db_created','true');
Если вам сложно, рассмотрите возможность использования библиотеки jsstore -он дает api, чтобы проверить, создан ли db или нет, а также предоставляет простой sql-подобный api для почти всех функциональных возможностей db.
Проверьте пример реакции для получения дополнительной информации - https://github.com/ujjwalguptaofficial/JsStore/tree/master/examples/react