티스토리 뷰

좋아요 기능 구현하다가 코드 하나하나 파헤치면서 공부하기

를 이어서 작성한다.

 

new Promise 생성자가 반환하는 promise 객체는 다음과 같은 내부 프로퍼티를 갖는다.

-state : 처음엔 "pending"(보류)이었다, resolve가 호출되면 "fulfilled", reject가 호출되면 "rejected"로 변한다.

 *state : 'Promise' 객체의 내부 상태를 나타내는 프로퍼티. 'Promise'는 비동기 작업을 처리하기 위한 객체로, 그 상태는 작업의 진행 상황을 나타낸다. 

 

 *비동기 작업 : 다른 코드의 실행을 차단하지 않고 백그라운드에서 수행되는 작업. 일반적으로 시간이 걸릴 수 있는 작업을 처리할 때 사용된다. 예를 들어 파일 읽기/쓰기, 네트워크 요청, 타이머, 데이터베이스 쿼리 등이 있다. 비동기 작업이 완료되면 특정 콜백 함수가 호출되거나, 'Promise'를 통해 결과를 처리할 수 있다. 

 - 비동기 작업의 특징

  1. 비차단(non-blocking) : 비동기 작업이 시작되면, 해당 작업이 완료될 때까지 기다리지 않고 다음 코드를 계속해서 실행한다. 이는 CPU 시간을 효율적으로 사용할 수 있게 한다. 

  2. 콜백(callback) : 비동기 작업이 완료되면 호출되는 함수이다. 비동기 작업의 결과나 에러를 처리할 수 있다. 

  3. 'Promise' : 비동기 작업을 관리하고 결과를 처리하기 위한 객체이다. 'Promise'는 비동기 작업의 성공('resolve') 또는 실패('reject') 상태를 나타낸다. 

  비동기 작업 예제

1. 콜백 함수 사용

function fetchData(callback){
	setTimeout(() => {
    	callback("데이터 로드 완료");
        }, 1000); // 1초 후에 콜백 함수 호출
}

console.log("작업 시작");
fetchData((result) => {
	console.log(result); // 1초 후에 "데이터 로드 완료" 출력
});
console.log("다음 작업");

 위 예제에서는 'fetchData' 함수가 비동기적으로 데이터를 로드하고, 1초 후에 콜백 함수를 호출한다. 이 동안 "다음 작업"이 먼저 출력된다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함