Проблема с использованием функции async/await [дубликат]

avatar
MiSiMa49
9 августа 2021 в 06:11
53
0
0

Я новичок во всей этой концепции асинхронных функций. Вот функция, которую я хочу использовать:

async function fetchData() {
    try {
      const resultRes = await fetch("https://www.breakingbadapi.com/api/characters?category=Better+Call+Saul");
      const result = await resultRes.json();
      
      return result;
    } catch (error) {
      console.error(error);
    }
}

А вот как выглядит вызов функции:

const Data = fetchData();

Теперь я хочу выполнить console.log(Data) с возвращаемым массивом, но вместо этого он отображается как объект обещания. Как мне использовать эту функцию, поскольку использование ее с .then портит все мое приложение, поскольку содержащий файл является компонентом реакции?

Источник
Bravo
9 августа 2021 в 06:13
0

асинхронная функция по своему определению возвращает обещание... попробуйте fetchData().then(Data => console.log(Data))... или const Data = await fetchData(), если можете - т.е. верхний уровень модуля или внутри async function

Suneel Kumar
9 августа 2021 в 06:13
2

попробуй так const Data = await fetchData();

MiSiMa49
9 августа 2021 в 06:16
0

но содержащая функция не является асинхронной, и, делая ее асинхронной, эта функция возвращает обещание, которое, похоже, не работает в reactDOM.render()

Jonas Wilms
9 августа 2021 в 06:17
2

Ну а дальше пора useState и useEffect... Однако перед этим рекомендую ознакомиться с асинхронностью в JS.

Bravo
9 августа 2021 в 06:20
0

асинхронность подобна вирусу — он заражает все, к чему прикасается, и от него нет лекарства. если вы думаете об асинхронности как о получении результата в некое неопределенное время в будущем, вы скоро поймете, что его нельзя «предсказать» — если только код не может путешествовать во времени — чего он не может

MiSiMa49
9 августа 2021 в 06:21
0

Теоретически я понимаю, как работает асинхронность, но когда пытаюсь работать с ней в реальном коде, это оказывается очень сложно.

Ответы (0)