Задать вопрос
@TheRevan

Как сделать связный запрос через fetch и связать заказы с пользователями?

Есть такой код
componentDidMount = () =>{
    let token = 'Bearer ' +localStorage.getItem('token');
    console.log(token);
    fetch('*****************', { method: 'GET',headers:{'Accept': "application/json", "Authorization": token}})
        .then(response => response.json())
        .then((response) => {
          let orderArr = response.success.orders;
          orderArr.forEach(order => {
            ///return fetch('**************'+order.user_id, { method: 'GET',headers:{'Accept': "application/json", "Authorization": token}})
          });
          
        })
        .then((response) => console.log(response))
        .catch(error => console.log(error));
  }

response.json()) - возвращает данные такого формата: image.png
Как мне добавить в заказ имя пользователя из другого запроса?
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Если отображаете в списках имя пользователя, то лучшим вариантом будет, на сервере добавлять к каждому заказу пользователя в поле linked. Так вы получите все необходимые данные за один запрос.
Либо, что-то вроде:
componentDidMount() {
  this.fetchData();
}

async fetchData() {    
  try {
    const orders = await fetch('orders-path', options).then(response => response.json()); 

    const users = {};
    for (let i = 0; i <= orders.length; i++) {
      const id = orders[i].user_id;
      const user = await fetch('/user/' + id, options).then(response => response.json());
      users[id] = user;
    } 

    this.setState({ orders, users });
  } catch (e) {
    // handle error
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
BRAGA96
@BRAGA96
async/await, promise, promise.all
Пример на codepen.io
В этом примере сначала идет запрос на один endpoint, в ответе получаем данные и ссылки на которые нужно кидать следующие запросы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽