이 문서는 ES6(ES2015)에 도입된 자바스크립트 네이티브 Promise의 필요성, 기본 개념, 표준 용어 및 생성 방법을 설명합니다. 자바스크립트의 싱글 스레드 환경에서 콜백 지옥과 이벤트 리스너의 한계(예: 이미 로딩된 상태 확인의 어려움, 다중 비동기 처리의 복잡성)를 해결하기 위해 Promise가 도입되었습니다. Promise는 비동기 작업의 성공(fulfilled) 또는 실패(rejected) 결과를 단일 값으로…
7 min read
JavaScript Promises: 개념, 용어 및 표준화
Source
Evernote/Inbox/JavaScript Promises There and back again - HTML5 Rocks.md
Summary
이 문서는 ES6(ES2015)에 도입된 자바스크립트 네이티브 Promise의 필요성, 기본 개념, 표준 용어 및 생성 방법을 설명합니다. 자바스크립트의 싱글 스레드 환경에서 콜백 지옥과 이벤트 리스너의 한계(예: 이미 로딩된 상태 확인의 어려움, 다중 비동기 처리의 복잡성)를 해결하기 위해 Promise가 도입되었습니다. Promise는 비동기 작업의 성공(fulfilled) 또는 실패(rejected) 결과를 단일 값으로 처리하며, 상태가 한번 결정되면 변경되지 않고 후속 콜백 호출을 보장합니다. 주요 용어로는 pending, fulfilled, rejected, settled, thenable 등이 있으며, 기존 라이브러리(Q, RSVP.js 등)와 달리 Promises/A+ 사양을 따르는 표준 API(new Promise)를 제공합니다.
Key Points
자바스크립트는 싱글 스레드이며, 비동기 처리를 위해 이벤트/콜백을 사용하지만 이는 상태 관리와 다중 처리에서 한계가 있습니다.
Promise는 비동기 작업의 최종 결과(성공/실패)를 나타내는 객체로, 상태가 한번 settled(fulfilled/rejected)되면 변경되지 않습니다.
이벤트 리스너와 달리 Promise는 작업 완료 후에도 콜백을 등록하면 해당 결과(성공/실패)를 보장하며, Promise.all 등을 통해 다중 비동기 처리가 용이합니다.
표준 용어: pending(대기), fulfilled(성공), rejected(실패), settled(완료/거부), thenable(then 메소드 보유 객체).