Запрос области является синхронным, нет возможности сделать его асинхронным.Похоже, что вы используете область с React Native, в этом случае лучшее решение - отложить запрос области, используя менеджер взаимодействия
async componentDidMount() {
// loading objects from realm is a synchronous task that block the main
// process, in order not to freeze the ui, we trigger the load after
// the interactions and screen loading is done
this.getRealmDataHandle = InteractionManager.runAfterInteractions(() => this.getRealmData())
}
componentWillUnmount() {
if (this.getRealmDataHandle !== undefined) {
this.getRealmDataHandle.cancel()
}
}
Сначала смонтируйте и отрендерите компонентэкран загрузки, затем, когда поток рендеринга пользовательского интерфейса завершит свою работу, диспетчер взаимодействия вызовет запрос области.Таким образом, пользователь не испытывает слишком много зависаний пользовательского интерфейса.
Я надеюсь, что однажды команда realmJS предоставит асинхронную версию, но я сомневаюсь, что это скоро произойдет.