@NovichokIvanovich
начинающий программист

Как получить ответ от axios в react-native?

делаю запрос погоды с помощью axios
Axios.defaults.baseURL = 'https://api.weather.yandex.ru/v1/forecast?';
Axios.defaults.headers.common['X-Yandex-API-Key'] = 'API-KEY';

press = async () => {
const res = await Axios.get('lat=51.834464&lon=107.584574&extra=true')
.then( response => console.log(response.now_dt) )
.catch(error => console.log(error));
console.log(res);
}
в консоль выходит только undefined
где ошибка?
  • Вопрос задан
  • 791 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
.then( response => console.log(response.now_dt) )
Вы ничего не возвращаете из функции, вот дальше по цепочке и undefined. Уберите вообще этот then и всё заработает.

P.S. Мешать вместе async/await и then/catch без веской на то причины несколько странно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@fend
Алексей прекрасно ответил.
Я немного дополню:

Смешивать await и then без веской причины точно не стоит - тут нужно что-то одно выбрать.
Однако есть интересный вариант использования - с одним лишь catch:
const result = await someRequest().catch(err => ...)

await сработает как обычно, с той лишь разницей, что в случае ошибки в промисе не выбросится исключение и не прервется выполнение команд, а ошибка будет обработана в .catch() , а в result будет undefined
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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