상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 비동기 처리를 위한 'Promise.all'의 사용법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`Promise.all`은 JavaScript에서 비동기 <a href='https://sangseek.com/sangseeks/작업/ko'>작업</a>을 동시에 처리할 수 있도록 도와주는 메서드입니다. 여러 개의 Promise를 배열로 받아서, 모든 Promise가 이행(<a href='https://sangseek.com/sangseeks/fulfilled/ko'>fulfilled</a>)되거나 하나라도 거부(rejected)될 때까지 기다립니다. 이 메서드는 비동기 작업을 병렬로 실행하고, 모든 작업이 완료된 후 결과를 한 번에 처리할 수 있게 해줍니다. 기본 사용법 `Promise.all`의 기본 문법은 다음과 같습니다: ```javascript Promise.all(iterable) .then((results) => { // 모든 Promise가 이행된 후 실행되는 코드 }) .catch((error) => { // 하나라도 거부된 경우 실행되는 코드 }); ``` - `iterable`: Promise 객체의 배열 또는 이터러블 객체입니다. - `results`: 모든 Promise가 이행된 후, 각 Promise의 결과를 포함하는 배열입니다. 결과의 순서는 입력된 Promise의 순서와 동일합니다. - `error`: 하나의 Promise라도 거부되면 이곳으로 전달됩니다. 예제 다음은 `Promise.all`을 사용하는 간단한 예제입니다: ```javascript function fetchData(url) { return new Promise((resolve, reject) => { setTimeout(() => { if (url) { resolve(`Data from ${url}`); } else { reject('URL is required'); } }, 1000); }); } const urls = ['https://api.example.com/data1', 'https://api.example.com/data2', 'https://api.example.com/data3']; Promise.all(urls.map(fetchData)) .then((results) => { console.log('All data fetched:', results); }) .catch((error) => { console.error('Error fetching data:', error); }); ``` 위의 예제에서 `fetchData` 함수는 주어진 URL에서 데이터를 가져오는 Promise를 반환합니다. `Promise.all`을 사용하여 여러 URL에서 데이터를 동시에 가져오고, 모든 데이터가 성공적으로 가져와지면 결과를 출력합니다. 만약 하나의 URL에서 오류가 발생하면, `catch` 블록이 실행됩니다. 주의사항 1. 거부된 Promise : `Promise.all`은 배열 내의 모든 Promise가 이행될 때까지 기다리며, 하나라도 거부되면 즉시 거부된 Promise의 이유를 반환합니다. 이로 인해 다른 Promise의 결과는 무시됩니다. 2. 빈 배열 : `Promise.all`에 빈 배열을 전달하면, 즉시 이행된 Promise를 반환합니다. 이는 `[]`를 인자로 전달할 경우 `Promise.resolve([])`와 동일한 동작을 합니다. 3. 결과 순서 : `Promise.all`의 결과 배열은 입력된 Promise의 순서와 동일합니다. 즉, 비동기 작업의 완료 순서와 관계없이 결과는 항상 입력 순서에 맞춰 배열로 반환됩니다. 결론 `Promise.all`은 여러 비동기 작업을 동시에 처리하고, 모든 작업이 완료된 후 결과를 한 번에 처리할 수 있는 유용한 도구입니다. 이를 통해 코드의 가독성을 높이고, 비동기 작업의 <a href='https://sangseek.com/sangseeks/효율/ko'>효율</a>성을 극대화할 수 있습니다. 하지만, 하나의 Promise라도 거부될 경우 전체 작업이 실패하게 되므로, 이를 적절히 처리하는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기