• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

axios도 promise처럼 .then().then()이렇게 쓸 수 있나요?

20.11.29 17:27 작성 조회수 550

1

axios가 promise 기반이라면, promise chaining이 가능한것처럼 axio는 then의 return 값이 다시 axios인가요?

그리고 제공해주신 링크를 읽어보면서 async와 chaining의 차이를 잘 모르겠습니다. 둘다 비동기 작업이 끝나길 기다리다가 다음 비동기 작업으로 넘어가는거 맞죠?

답변 2

·

답변을 작성해보세요.

0

대현님의 프로필

대현

질문자

2020.12.03

다시 읽어보니 이해가 되는 것 같아요... ㅎㅎ 그런데 또 궁금한게 생겼습니다. Promise.resolve를 then으로 받으면 then에서 return으로 객체를 반환하거나 비동기 작업이 포함된 새로운 Promise 객체를 반환할 수 있잖아요. 객체를 반환할 때는 then이 Promise.resolve(객체) 형태로 반환되고 새로운 Promise를 반환할 때는 비동기 작업의 결과에 따라 상태가 바뀐 Promise를 받는거죠? 객체를 넘길 때는 바로 then으로 받는것 같아서 질문드려요!

0

안녕하세요 대현님, 액시오스가 프로미스 기반이라고 말씀 드린 부분은 일반적인 HTTP 라이브러리와 다르게 액시오스에서 제공하는 API의 호출 결과에 프로미스가 감싸져 있다 정도로 이해하시면 좋을 것 같습니다. 그리고 프로미스 체이닝에 대해서 질문하셨는데요. 상품의 재고를 받아오는 API를 액시오스를 호출한다고 했을 때의 결과는 아래와 같습니다.

axios.get('products/stock'); // Promise.resolve(1);

여기에 .then()을 이용해서 체이닝 하는 것은 결국 .then() 안의 반환 결과를 또 chaining 한다는 관점으로 보셔야 할 것 같은데요. 일단 액시오스를 떠나서 프로미스 체이닝에 대해서 좀 더 학습을 하시는게 좋을 것 같습니다 :)

async await와 프로미스의 개념은 직접 코드로 작성해보시는게 더 이해하시기가 수월할 것 같아요. 이후 강좌들에서 좀 더 자세히 다루고 있으니 참고하시면 좋을 것 같습니다 :)

수강해 주셔서 감사합니다!