Обработка асинхронных операций в React

Я хочу добиться с помощью React-jsx следующего:

В одном файле у меня есть функция, которая делает запрос к базе данных и возвращает некоторые данные. В другом файле я хочу вызвать эту функцию, а затем обработать данные. Я хочу выполнить эту операцию, предпочтительно используя async / await, поскольку я видел, что это должно быть возможно, но я не против решения, основанного на обещаниях. Вот что я сделал:

export async function getData() {
  try {
    await request
      .get(url, (err, res) => {
        console.info('1', res.body);
        return res.body;
      }
  } catch(e) {
    return e;
  }
}

И во втором файле, где я вызываю getData ():

import { getData } from './path';

async formatData() {
  try {
    const data = await getData();
    // some formatting
    console.info('2', data);
  } catch(e) {
    return e;
  }
}

И вот результат, который я получаю в консоли:

> '2' undefined 

предполагая, что ожидание не сработало. Что мне не хватает?

async/await работает только с доступными объектами (см. «Обещания»). Этот синтаксис не может обрабатывать обратные вызовы стиля узла. Вам нужно использовать обещанную версию того, что есть request. Например, axios или isomophic-fetch
Yury Tarabanko 30.03.2018 17:25

Async / await очень близок к обещаниям. На самом деле они без них не работают. Если вы хотите, чтобы await работал, ему нужно получить обещание, иначе он ничего не сделает.

Kerry Gougeon 30.03.2018 18:18

Что такое request.get, возвращает ли обещание?

Bergi 31.03.2018 17:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
3
78
0

Другие вопросы по теме