상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바스크립트에서 함수의 프로미스 체이닝(Promise Chaining)은 어떻게 이루어지나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트에서 프로미스(Promise)는 비동기 작업의 결과를 나타내는 객체로, 비동기 작업이 완료되었을 때의 값을 다루기 위해 사용됩니다. 프로미스 체이닝(Promise Chaining)은 여러 개의 프로미스를 연결하여 순차적으로 실행하는 방법을 의미합니다. 이를 통해 비동기 작업을 더 간결하고 가독성 있게 작성할 수 있습니다. 프로미스의 기본 개념 프로미스는 세 가지 상태를 가집니다: 1. 대기(Pending) : 초기 상태, 이행 또는 거부되지 않은 상태. 2. 이행(Fulfilled) : 비동기 작업이 성공적으로 완료된 상태. 3. 거부(Rejected) : 비동기 작업이 실패한 상태. 프로미스는 `then()`, `catch()`, `finally()` 메서드를 제공하여 비동기 작업의 결과를 처리할 수 있습니다. 프로미스 체이닝의 기본 구조 프로미스 체이닝은 `then()` 메서드를 사용하여 여러 개의 프로미스를 연결하는 방식으로 이루어집니다. 각 `then()` 메서드는 이전 프로미스의 결과를 받아서 새로운 프로미스를 반환합니다. 이로 인해 여러 비동기 작업을 순차적으로 실행할 수 있습니다. ```javascript function asyncTask1() { return new Promise((resolve, reject) => { setTimeout(() => { console.log("Task 1 completed"); resolve("Result from Task 1"); }, 1000); }); } function asyncTask2(resultFromTask1) { return new Promise((resolve, reject) => { setTimeout(() => { console.log("Task 2 completed with:", resultFromTask1); resolve("Result from Task 2"); }, 1000); }); } function asyncTask3(resultFromTask2) { return new Promise((resolve, reject) => { setTimeout(() => { console.log("Task 3 completed with:", resultFromTask2); resolve("Result from Task 3"); }, 1000); }); } // 프로미스 체이닝 asyncTask1() .then(result => asyncTask2(result)) .then(result => asyncTask3(result)) .then(finalResult => { console.log("All tasks completed with final result:", finalResult); }) .catch(error => { console.error("An error occurred:", error); }); ``` 프로미스 체이닝의 작동 방식 1. 첫 번째 프로미스 실행 : `asyncTask1()`을 호출하면, 이 함수는 새로운 프로미스를 반환합니다. 이 프로미스는 1초 후에 이행됩니다. 2. then() 메서드 : 첫 번째 프로미스가 이행되면, `then()` 메서드가 호출되고, 그 결과가 다음 프로미스인 `asyncTask2()`에 전달됩니다. 3. 연속적인 호출 : `asyncTask2()`가 이행되면, 그 결과가 다시 `then()` 메서드를 통해 `asyncTask3()`에 전달됩니다. 4. 최종 결과 처리 : 모든 프로미스가 이행된 후, 마지막 `then()`에서 최종 결과를 처리합니다. 5. 오류 처리 : 만약 어느 단계에서 오류가 발생하면, `catch()` 메서드가 호출되어 오류를 처리합니다. 프로미스 체이닝의 장점 - 가독성 : 비동기 작업을 순차적으로 나열할 수 있어 코드가 더 읽기 쉬워집니다. - 에러 처리 : 체이닝된 프로미스에서 발생한 오류는 마지막 `catch()` 블록에서 한 번에 처리할 수 있습니다. - 비동기 <a href='https://sangseek.com/sangseeks/흐름 제어/ko'>흐름 제어</a> : 각 비동기 작업의 결과를 다음 작업에 쉽게 전달할 수 있습니다. 결론 프로미스 체이닝은 자바스크립트에서 비동기 작업을 처리하는 강력한 방법입니다. 이를 통해 복잡한 비동기 로직을 간결하게 작성할 수 있으며, 가독성과 유지보수성을 높일 수 있습니다. 프로미스를 활용한 체이닝은 현대 자바스크립트 개발에서 필수적인 패턴으로 자리 잡고 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기