rishatss
@rishatss
Simple Developer ^)

Почему axios не возвращает данные при вызове return?

Почему при запросе к серверу функция возвращает undefined?

function FindCard(){

axios.get('/treking.php', {
    params: {
      key: 3636614,
      iin: 910131451122
    }
  })
  .then(function (response) {
    return response;
  })
  .catch(function (error) {
    console.log(error);
  });
}

axios.get('/treking.php', {
    params: {
      key: 3636614,
      iin: 910131451122
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
}

При попытке дебажить этот код приходит undefiend и потом data с данными сервера. Как получить данные и вернуть их? Первый код который как пофиксить?
  • Вопрос задан
  • 1504 просмотра
Решения вопроса 1
@kulaeff
Front-end developer
Так не будет работать. Вы просто вызываете коллбэк, но то, что вы в коллбеке возвращаете, никуда на самом деле не вернется. Вам нужно либо прокинуть в функцию дополнительный обработчик, а затем вызывать его после выполнения запроса
function FindCard(callback) {

axios.get('/treking.php', {
    params: {
      key: 3636614,
      iin: 910131451122
    }
  })
  .then(function (response) {
    callback(response);
  })
  .catch(function (error) {
    console.log(error);
  });
}


Либо использовать async/await:
async function FindCard() {
  try {
    var response = await axios.get(...)
  } catch (error) {
    console.log(error)
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Так:
function FindCard(callback) {
	axios.get('/treking.php', {
	    params: {
	      key: 3636614,
	      iin: 910131451122
	    }
	  }).asCallback(callback)
}

FindCard((err, card) => {
//
});


Или так:
function FindCard() {
	return axios.get('/treking.php', {
	    params: {
	      key: 3636614,
	      iin: 910131451122
	    }
	  });
}

FindCard().then(card => {

	}).catch(err => {
		
		})


Читайте про Promise
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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