TIL

taetae·2023년 4월 20일
0

내배캠 TIL

목록 보기
45/48
post-thumbnail

프로미스 (Promise)와 async/await

Promise는 비동기 작업의 최종 완료(또는 실패)를 나타내는 개체이며 사용 가능한 경우 해당 작업의 결과를 처리할 수 있도록 한다. Promise에는 보류(작업이 완료되기 전의 초기 상태), 이행(작업이 성공한 경우) 및 거부됨(작업이 실패한 경우)의 세 가지 상태가 있다.

Async/await는 비동기 코드를 더 쉽게 작성하고 읽을 수 있도록 하는 Promise 작업을 위한 최신 구문이다. Async/await를 사용하면 더 직관적이고 쉽게 추론할 수 있는 동기식 스타일로 비동기 코드를 작성할 수 있다. 비동기 함수는 항상 Promise를 반환하므로 Async/await는 본질적으로 Promise에 대한 구문 설탕이다.

Promise는 콜백을 사용하여 비동기 작업을 관리하는 데 유용하지만 async/await는 Promise를 사용하는 보다 간결하고 읽기 쉬운 방법을 제공한다. async/await는 Promise 위에 구축되었으며 최신 버전의 JavaScript에서만 사용할 수 있다. 따라서 이전 코드베이스에서 Promise를 사용하는 방법을 알아야 한다.


클로저 (Closure)

클로저(Closure)는 상태가 보존된 함수를 생성할 수 있도록 하는 JavaScript의 기본 개념.

JavaScript에서 모든 함수는 새로운 범위를 만들고 해당 함수 내에서 선언된 모든 변수는 해당 범위 내에서만 액세스할 수 있다(중첩 함수 포함). 그러나 클로저를 사용하면 둘러싸는 범위의 상태를 "닫는"(또는 캡처) 함수를 생성하여 둘러싸는 함수가 완료된 후에도 해당 범위의 변수에 액세스하고 수정할 수 있다.

클로저는 일반적으로 프라이빗 변수 및 메서드를 생성하고 보존된 상태로 함수를 반환하는 고차 함수를 생성하는 데 사용된다. 또한 클로저는 주변 범위의 가비지 수집을 방지할 수 있으므로 신중하게 사용하지 않으면 클로저가 메모리 누수로 이어질 수 있다는 점에 유의하는 것이 중요하다.

0개의 댓글