Реагирование: У меня есть блок try / catch в сервисе, к которому я пытаюсь добавить вызов Axios, но я не уверен, куда его поместить - PullRequest
0 голосов
/ 22 мая 2019

У меня есть блок try / catch внутри службы React, и теперь мне нужно добавить фактический вызов Axios и сделать запрос GET к внешнему API, чтобы вернуть живые данные, а затем установить ответ этих данных на существующую переменную , но я не уверен, как это сделать. У меня есть мой сервис, перечисленный ниже, любая обратная связь или понимание того, как лучше добиться этого, будет огромной помощью

customerService.js

import { logError } from './logging'

export async function getCustomer(customer = {}) {
  try {
    const { customerId } = customer
    console.info('Customer ID:', customerId)

    // TODO: Make call to new API
    return new Promise(res => {
      setTimeout(() => res({}), 1000)
    })
  } catch (error) {
    logError(error)
    throw error
  }
}

1 Ответ

1 голос
/ 23 мая 2019

Поскольку ваша функция getCustomer() равна async, вы должны иметь возможность await ваш вызов Axios:

import Axios from 'axios'
import { logError } from './logging'

export async function getCustomer(customer = {}) {
  try {
    const { customerId } = customer
    console.info('Customer ID:', customerId)

    const result = await Axios.get("http://example.com");

    return new Promise(res => {
      // I assume this is where you want to use the API result?
      setTimeout(() => res(result), 1000)
    })
  } catch (error) {
    logError(error)
    throw error
  }
}
...