230830 Promise와 Async/Await

나윤빈·2023년 8월 30일
0

TIL

목록 보기
44/55

Promise와 Async/Await 차이

Promise와 Async/Await는 모두 자바스크립트의 비동기 프로그래밍을 다루는 기술이지만, 동작 방식에 차이가 있다. 먼저 Promise는 비동기 작업의 결과를 나타내는 객체이다. Promise는 세 가지 상태를 가진다. Pending은 비동기 작업이 완료되지 않은 상태를 말한다. Fulfilled은 비동기 작업이 성공적으로 완료된 상태를 말한다. 이때 then() 메서드를 사용하여 처리 결과를 다룬다. Rejected는 비동기 작업이 실패한 상태를 말한다. 이때 catch() 메서드를 사용하여 에러를 처리한다.

Async/Await는 비동기 코드를 동기 코드처럼 작성할 수 있도록 도와준다. 함수 앞에 async 키워드를 붙이면 항상 Promise를 반환하고, await 키워드는 Promise가 결정될 때까지 코드 실행을 중단하고 결과를 반환한다. 또한 try-catch구문을 사용하여 에러를 처리한다. 따라서 Async/Await를 사용하면 비동기 작업의 순서와 흐름을 명확하게 표현할 수 있고, Promise의 경우 중첩된 콜백 함수로 인해 콜백 지옥 문제가 발생할 수 있으나, Async/Await는 비동기 작업을 순차적으로 진행할 수 있기 때문에 이러한 중첩을 피할 수 있도록 도와준다.

profile
프론트엔드 개발자를 꿈꾸는

0개의 댓글