티스토리 뷰
좋아요 기능 구현하다가 코드 하나하나 파헤치면서 공부하기
를 이어서 작성한다.
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초 후에 콜백 함수를 호출한다. 이 동안 "다음 작업"이 먼저 출력된다.
'TIL > 일기, 공부 내용 정리' 카테고리의 다른 글
팀 과제가 발제되었다. (영화 페이지 만들기) (0) | 2024.07.31 |
---|---|
자바스크립트 3강을 (거의) 완강했다. (1) | 2024.07.24 |
헷갈리는 것 (0) | 2024.07.24 |
자바스크립트 2강을 완료했다. (1) | 2024.07.23 |
자바스크립트 종합반 1강을 완강했다. (0) | 2024.07.22 |