Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 시스템 통합
- AWS
- HTML
- 그릿
- 코딩
- 프론트엔드
- var
- 성공으로 가는 길
- IT
- 워터폴개발
- while
- system integration
- 자바스크립트
- 기초다지기
- CSS
- const
- 함수
- 코린이
- 기본연산
- JavaScript
- Promise
- blockchain
- 캐시
- 블록체인
- let
- 스크럼
- 프로젝트 방법론
- for
- 생성형 Ai
- 목적
Archives
- Today
- Total
Grit
자바스크립트 Promise: 초보자를 위한 가이드 본문
자바스크립트의 Promise는 비동기 작업의 최종 완료(또는 실패)와 그 결과 값을 나타내는 객체입니다. 비동기 작업은 예를 들어 서버에서 데이터를 가져오거나, 파일을 읽고 쓰는 작업 등 시간이 걸리는 작업들을 말합니다. Promise는 이러한 작업들이 백그라운드에서 실행되는 동안, 코드의 나머지 부분이 블록 되지 않고 실행될 수 있게 해 줍니다.
Promise의 주요 개념
- 상태(State):
- Pending(대기): 초기 상태, 비동기 처리가 아직 완료되지 않음
- Fulfilled(이행): 비동기 처리가 성공적으로 완료됨
- Rejected(거부): 비동기 처리가 실패함
- 값(Value): Promise가 성공적으로 완료되었을 때 반환하는 값
- 이유(Reason): Promise가 실패한 이유, 즉 에러의 원인
// Promise 생성
let promise = new Promise((resolve, reject) => {
// 비동기 작업 수행
if (/* 비동기 작업 성공 */) {
resolve(value); // 성공 시 resolve 호출
} else {
reject(error); // 실패 시 reject 호출
}
});
// Promise 사용
promise.then(
result => { /* 이행(fulfill) 상태 처리 */ },
error => { /* 거부(reject) 상태 처리 */ }
);
Promise 체이닝
Promise 체이닝은 JavaScript에서 비동기 작업을 연속적으로 처리할 때 사용되는 효율적인 방법입니다. 이 방식을 사용하면 여러 비동기 작업을 순차적으로 실행하고, 각 작업의 결과를 다음 작업으로 전달할 수 있습니다. 이 과정은 .then(), .catch(), .finally() 등의 메서드를 사용하여 구현됩니다.
Promise 체이닝의 기본 구조
- .then() 메서드
- .then()은 Promise가 성공적으로 이행(fulfilled)됐을 때 실행됩니다.
- .then()은 두 개의 인자를 받을 수 있는데, 첫 번째는 이행 상태의 콜백 함수, 두 번째는 거부 상태의 콜백 함수입니다.
- 첫 번째 콜백 함수의 반환 값은 다음 .then()의 콜백 함수의 인자가 됩니다.
- .catch() 메서드
- .catch()는 Promise가 거부(rejected)됐을 때 실행됩니다.
- 주로 에러 처리에 사용됩니다.
- .finally() 메서드
- .finally()는 Promise의 성공/실패 여부에 관계없이 실행됩니다.
- 주로 정리 작업에 사용됩니다.
function firstFunction() {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
resolve(1);
});
}
function secondFunction(value) {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
resolve(value + 1);
});
}
function thirdFunction(value) {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
resolve(value + 1);
});
}
firstFunction()
.then(result => secondFunction(result))
.then(result => thirdFunction(result))
.then(result => console.log(result)) // 출력: 3
.catch(error => console.error(error))
.finally(() => console.log('Completed'));
'IT > 자바스크립트' 카테고리의 다른 글
| 자바스크립트 Class의 상속과 다형성 이해하기 (0) | 2024.01.31 |
|---|---|
| 자바스크립트 반복문의 기본 개념과 활용법 알아보기 (0) | 2024.01.30 |
| 자바스크립트의 조건문 (0) | 2024.01.29 |
| 자바스크립트 함수 (0) | 2024.01.28 |
| 자바스크립트의 기본연산 (0) | 2024.01.27 |