[ TIL ] Promise를 처리하는 두가지 방법, then / async, await
Promise
👉🏻
Promise 객체
는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타낸다.
- 비동기 연산이 종료된 이후의
결과값 / 실패
를 처리하기 위한 처리기를 연결할 수 있도록 한다.Promise()
👉🏻 이미 프로미스를 지원하지 않는 함수를 감쌀 때 주로 사용합니다.
Promise
상태
대기(pending)
: 이행하거나 거부되지 않은 초기 상태이행(fulfilled)
: 연산 성공적으로 완료거부(rejected)
: 연산 실패
Promise
를 처리하는 두가지 방법
위에 정리해둔 부분은 MDN을 통해 Promise
에 대한 공식 문서를 정리한 내용이고,
암만 설명을 들어도 이해 갈듯, 이해가 가지 않는 Promise
.
"async/await
는 Promise
랑 필수로 같이 써주는건가?"
"그럼 then/catch
는 언제, 왜 써주는거지? try/catch랑 어떻게 달라?"
너무 갑갑해서, 내가 현재 알고있는 개념이 맞는건지 멘토님께 질문드렸다.
그 결과, Promise
를 처리하는 두가지 방법이 있다고 하셨는데..!! (두둥)
then
으로resolved
된 결과를 받아오는 방법async / await
로resolved
된 결과를 받아오는 방법
1. then
내부로 들어오는 콜백함수의 첫번째 인자로 Promise
에서 resolved된 결과가 들어온다
여기서 resolve, reject 여부를 따질 수 있어서
then/catch
구문을 사용하여 결과 및 예외처리를 하는 것!
2. async / await
Promise
를 통해 실행된 비동기 작업의 결과를 받아오기 때문에
try/catch
를 통해 예외처리를 진행!
👆🏻 async/await
를 사용한 것!
이쯤 되니 내가 Promise
를 몰라서 힘든게 아니라,
그 이전에 resolve
, reject
와 async
, await
에 대한 개념이 부족해서 더 힘들다는 생각이 들었다.
과연 이것들은 무엇인가..!!!
resolve
, reject
- 비동기 작업은 성공 혹은 실패한다.
- 비동기 작업은 요청하는 쪽과 처리하는 쪽이 구분되어있다.
Promise
의 resolve, reject는 비동기 작업의 처리과정에서 성공/실패를 구분하는 방법이다.
new Promise((resolve, reject)=>{
if(조건) {
resolve('성공!');
}
reject('실패');
})
- 비동기 작업은 성공 혹은 실패한다.
- 비동기 작업은 요청하는 쪽과 처리하는 쪽이 구분되어있다.
Promise
의 resolve, reject는 비동기 작업의 처리과정에서 성공/실패를 구분하는 방법이다.
new Promise((resolve, reject)=>{
if(조건) {
resolve('성공!');
}
reject('실패');
})
한마디로 이런 식으로 로직이 진행된다는 것..!!!!!
async
, await
참고
Author And Source
이 문제에 관하여([ TIL ] Promise를 처리하는 두가지 방법, then / async, await), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haileeyu21/TIL-Promise를-처리하는-두가지-방법-then-async-await저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)