프로미스는 비동기 작업의 최종 성공 값 또는 실패 이유와 연결할 수 있다. 이를 통해 비동기 메서드는 동기 메서드와 같은 값을 반환할 수 있다. 즉, 최종 값을 즉시 반환하는 대신 비동기 메서드는 미래의 특정 시점에 값을 제공 하겠다는 약속을반환한다. js에서 비동기를 처리할 때 자주 사용한다. 콜백 지옥에서 유일한 탈출구랄까.... 아무튼 내가 회사에서 사용해보면서 간략하게 이해한 개념들을 정리해보려고 한다. promise는 3가지의 상태로 있다. pending(초기), fulfilled(성공), rejected(실패)로 되어있다.
두 개 이상을 비동기 병렬로 처리하는 방법을 보자.! (한 개 처리하는 건 다른 블로그에도 많으니까!)
한번 코드를 살펴보자.
이러한 코드가 있다고 해보자!!(그냥 방금 대충 만들어보았다... mongoDB를 사용했따!) 이때 데이터베이스에서 home이라는 class안에 sungmin과 choco를 비동기적으로 가져오고 싶었다. 이때, promise로 엮어주면 동시에 가져올 수 있다. 원래 같은 경우에는 sungmin을 가져오고 choco를 가져오지만, promise로 가져오면 동시에 비동기적으로 가져올 수 있다. 쿼리의 결괏값을. then()으로 받아 온 값이 둘 중에 하나라도 오류가 나거나, 둘 다 오류가 나면 catch문으로 가서 error를 반환한다. 잘 쓰면 코드가 깔끔해지고 메모리를 좀 더 효율적으로 사용할 수 있다. 아직 필자도 익숙하진 않지만 되도록이면 쓸 수 있는 상황이면 promise를 사용해보려고 한다. 오래간만에 블로그에 글을 써 본 것 같다... 열심히 해야겠다.!!
'혼자 공부하는 것들 > javascript' 카테고리의 다른 글
[JS] async와 await (0) | 2021.09.11 |
---|---|
[JS] ES6 화살표 함수와 기본 함수의 차이점을 알아보자 (0) | 2021.08.30 |
[mongoDB, JavaScript] 시간복잡도를 줄여보자! join이 안된다고?? (3) | 2021.06.02 |
[JS] 구조분해할당 (0) | 2021.05.01 |
댓글