Как справиться с тяжелым ответом API в реагировать родной?

Чтобы решить, обновите Spring Frame Work до 3.2.0 или выше!

1
задан Harleen Kaur Arora 20 March 2019 в 09:54
поделиться

2 ответа

Я думаю, что прежде чем получить ответ от API, он вызывает функцию, потому что, как вы упоминали для большого размера, она не работает, и я не могу увидеть await в вашем коде. Попробуйте добавить await к axios и проверьте. Надеюсь, это поможет вам.

0
ответ дан Maneesh 20 March 2019 в 09:54
поделиться

Как сказал @Maneesh, это может быть вызвано тем, что функция вызывается несколько раз, не ожидая ответа. Вы упомянули, что уже добавили таймаут в Axios, но есть известная проблема , из-за которой простое добавление тайм-аута в Axios не работает. (У меня сама эта проблема уже была в прошлом)

Существует обходной путь для установки тайм-аута для запроса - вручную прервать запрос, используя cancelToken и обычный javascript [112 ]

function setRequestTimeout(source, timeout) {
  setTimeout(() => {
    source.cancel('timeout')
  }, timeout);
}

function getRequest() {
  return new Promise((resolve, reject) => {

    const timeout = 10000

    let source = axios.CancelToken.source()
    setRequestTimeout(source, timeout)

    try {
      const response = await axios.get('/your-address/', {
        timeout: timeout,
        headers: {
          'Content-type': 'application/json'
        },
        cancelToken: source.token
      })
      resolve(response)

    } catch (error) {
      reject(error)
    }
  })
}

Это работало для меня в прошлом, мое решение основано на комментариях, найденных в этой проблеме, о которой я упоминал ранее, надеюсь, это поможет вам!

0
ответ дан Lucas Dolsan 20 March 2019 в 09:54
поделиться
Другие вопросы по тегам:

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