@Ankozar

Как дождаться появления данных от асинхронной функции для экспорта этих данных?

Пытаюсь получение данных вынести в отдельный файл и импортировать уже готовый объект.

async function getThisDay (){
    try {
      let result = await fetch('folder/calend-2022.json')
      result = await result.json()
      console.log(result)
      return result
    }catch(error)
    { return 'ooooops' }
  }

export default (
  getThisDay()
)


Проблема в том, что запрос-то асинхронный. Если я функцию передаю в экспорт, основной скрипт получает промис. Из него инфу вытаскивать надо. Как можно в экспорт передать готовый объект?

PS: я пытался фетч не пихать в функцию, а писать так:
var info = await fetch...
Но у меня вебпак не компилирует так, пишет "Error: Module parse failed: The top-level-await experiment is not enabled (set experiments.topLevelAwait: true to enabled it)"
Гуглил, как пофиксить - не получается.
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
1) зачем в ретурне оппссс ?
В смысле Кетч не нужен.
2) чем плох промис ?
Навесите в функции выше then
Или из асинка выше подождёте через аваит
Ответ написан
Alexandroppolus
@Alexandroppolus
кодир
Экспортируй функцию getThisDay.
Нет смысла экспортировать её результат или даже промис. Это не гибко. Например, запрос не удался. Тогда у тебя не будет возможности перезапросить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы