effect_tw
@effect_tw

Почему axios, промисы может возвращать, а результат промиса — нет?

Почему первый вариант использования работает , а второй вариант - нет.
Почему сразу нельзя получить результат промиса?
5dee9ff46aaec208791074.png
5dee9ffece2a2360582578.png
  • Вопрос задан
  • 381 просмотр
Пригласить эксперта
Ответы на вопрос 3
@RMate
Потому что асинхронность.
async getUser(userId) {
return await instance.get('...')
}


Убедительнейшая просьба не вставлять скриншоты, а использовать средства разметки кода встроенные в платформу.
Ответ написан
Robur
@Robur
Знаю больше чем это необходимо
Почему первый вариант использования работает , а второй вариант - нет.

потому что у них разные данные на выходе, безотносительно промисов.
В первом случае вернется промис в котором будет результат запроса.
во втором случае вернется промис в котором будет поле data из результата запроса.

например, в первом случае в данных будет `{data: {x:1}}` а во втором `{x:1}`

очевидно что разные данные приведут к разным результатам.

Промис там или не промис - дело десятое, в плане промисов оба варианта идентичны.
Ответ написан
Krasnodar_etc
@Krasnodar_etc
avito front
Ты же понимаешь, как работают промисы, да?

В обоих случаях при вызове getUser() вернётся промис, но разрезолвится он с разными параметрами
Что вообще такое "результат промиса"?)

Промис, возвращаемый в getUser, делает запрос, который грузится, условно, 10 секунд. Но метод getUser обязан вернуть что-то сразу после своего вызова. Он возвращает промис в статусе pending, пока промис не будет resolved/rejected . В случае, если промис resolved, выполнится метод then и ты сможешь вернуть из промиса какое-то кстомное значение
Стало немного понятнее?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы