GET-запрос axios работает, но не может присвоить содержимое результата переменной - PullRequest
0 голосов
/ 27 сентября 2018

Я новичок в javascript / React.js, и я застрял в этой странной проблеме на 5 часов:

В настоящее время я пытаюсь получить некоторые данные из базы данных, которая отправляетмне json файл всякий раз, когда я выполняю запрос get с помощью axios.Я могу получить данные и записать их содержимое, но по какой-то причине я не могу «переслать» что-либо за пределы функций axios.

Вот краткий код, который я написал, с двумя журналами испытаний:

reports.js

foo() {

  // var declared outside of axios function
  var resultSet;

  axios.get(
    /working/url/example/
  ).then((res) => {
    resultSet = res.data.rows.slice();

    // FIRST LOG, inside axios function
    console.log(resultSet);
  }).catch(
    error => console.log(error)
  );

  // SECOND LOG, outside of axios function
  console.log(resultSet);
}

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

chrome console

undefined                    requests.js:20
(3) [{…}, {…}, {…}]          requests.js:15

Первый журнал успешно показывает запрошенное мной содержимое, но второй журнал показывает, что эта переменная каким-то образомundefined.

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

1 Ответ

0 голосов
/ 27 сентября 2018

Я полагаю, что причина в асинхронном запросе, когда вы делаете запрос GET, ваш код продолжает выполняться, но запрос может быть еще не завершен, это объясняет неопределенность, и когда запрос завершен, вы получаете ваши данныенапечатано на консоли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...