본문 바로가기
혼자 공부하는 것들/javascript

[JS] promise 비동기처리

by applepick 2021. 4. 26.
반응형

프로미스는 비동기 작업의 최종 성공 값 또는 실패 이유와 연결할 수 있다. 이를 통해 비동기 메서드는 동기 메서드와 같은 값을 반환할 수 있다. 즉, 최종 값을 즉시 반환하는 대신 비동기 메서드는 미래의 특정 시점에 값을 제공 하겠다는 약속을반환한다. js에서 비동기를 처리할 때 자주 사용한다. 콜백 지옥에서 유일한 탈출구랄까.... 아무튼 내가 회사에서 사용해보면서 간략하게 이해한 개념들을 정리해보려고 한다. promise는 3가지의 상태로 있다. pending(초기), fulfilled(성공), rejected(실패)로 되어있다. 

두 개 이상을 비동기 병렬로 처리하는 방법을 보자.! (한 개 처리하는 건 다른 블로그에도 많으니까!)

한번 코드를 살펴보자.

 

 

이러한 코드가 있다고 해보자!!(그냥 방금 대충 만들어보았다... mongoDB를 사용했따!) 이때 데이터베이스에서 home이라는 class안에 sungmin과 choco를  비동기적으로 가져오고 싶었다. 이때, promise로 엮어주면 동시에 가져올 수 있다. 원래 같은 경우에는 sungmin을 가져오고 choco를 가져오지만, promise로 가져오면 동시에 비동기적으로 가져올 수 있다. 쿼리의 결괏값을. then()으로 받아 온 값이 둘 중에 하나라도 오류가 나거나, 둘 다 오류가 나면 catch문으로 가서 error를 반환한다. 잘 쓰면 코드가 깔끔해지고 메모리를 좀 더 효율적으로 사용할 수 있다. 아직 필자도 익숙하진 않지만 되도록이면 쓸 수 있는 상황이면 promise를 사용해보려고 한다. 오래간만에 블로그에 글을 써 본 것 같다... 열심히 해야겠다.!!

반응형

댓글