@Wea7her

Как вернуть значение из axios.get?

const url = 'http://developer.cumtd.com/api/v2.2/json/GetStop?key=d99803c970a04223998cabd90a741633&stop_id=it';
var str;

function axiosTest() {
    axios.get(url)
        .then(function (response) {
            str = response.data;
        })
        .catch(function (error) {
            console.log(error);
        });
    // Return
    return str;
}

let te = axiosTest();
console.log(te);


Возвращает undefined. Как вернуть в переменную именно значение?
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
rockon404
@rockon404
Frontend Developer
Почитайте про асинхронность. В момент вызова console.log ответ от сервера еще не приходит.

Заставить работать можно например так:
(async () => {
  try {
    const { data } = await axios.get(url);
    console.log(data);
  } catch (err) {
    console.log(err);
  }
})();

или так:
axios.get(url).then(res => {
  console.log(res.data);
}).catch(console.log);


JavaScript: методы асинхронного программирования
Ответ написан
@andreysuha
Что то знаю
axios возвращает promise, Вам собственно return происходит когда str ещё undefined. Мне когда то помогла эта статья.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Квадро Санкт-Петербург
от 80 000 до 200 000 руб.
YLab Тольятти
от 80 000 до 120 000 руб.
23 июл. 2019, в 16:20
500 руб./в час
23 июл. 2019, в 16:01
1500 руб./в час
23 июл. 2019, в 15:50
1000 руб./в час