상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 비동기 프로그래밍에서 'promise race'의 사용법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
비동기 프로그래밍에서 'Promise.race()'는 여러 개의 Promise 객체 중에서 가장 먼저 완료된 Promise의 결과를 반환하는 메서드입니다. 이 메서드는 JavaScript의 Promise API의 일부로, 비동기 작업을 처리할 때 유용하게 사용됩니다. Promise.race()는 주로 여러 비동기 작업 중에서 가장 빠른 결과를 얻고자 할 때 사용됩니다. Promise.race()의 기본 사용법 `Promise.race()`는 다음과 같은 형식으로 사용됩니다: ```javascript Promise.race(iterable); ``` - iterable : Promise 객체를 포함하는 iterable(예: 배열)을 전달합니다. 반환값 `Promise.race()`는 가장 먼저 완료된 Promise의 결과를 포함하는 새로운 Promise를 반환합니다. 이 Promise는 다음과 같은 경우에 해결됩니다: 1. 성공 : 가장 먼저 완료된 Promise가 성공적으로 해결되면, 반환된 Promise도 성공적으로 해결됩니다. 2. 실패 : 가장 먼저 완료된 Promise가 거부되면, 반환된 Promise도 거부됩니다. 예제 다음은 `Promise.race()`의 <a href='https://sangseek.com/sangseeks/사용 예제/ko'>사용 예제</a>입니다: ```javascript const promise1 = new Promise((resolve, reject) => { setTimeout(() => resolve('Promise 1 resolved'), 1000); }); const promise2 = new Promise((resolve, reject) => { setTimeout(() => resolve('Promise 2 resolved'), 500); }); const promise3 = new Promise((resolve, reject) => { setTimeout(() => reject('Promise 3 rejected'), 200); }); Promise.race([promise1, promise2, promise3]) .then(result => { console.log(result); // "Promise 3 rejected" 또는 "Promise 2 resolved" }) .catch(error => { console.error(error); // "Promise 3 rejected" }); ``` 위의 예제에서 `promise1`, `promise2`, `promise3` 세 개의 Promise가 있습니다. `promise2`가 500ms 후에 해결되고, `promise3`은 200ms 후에 거부됩니다. `Promise.race()`는 가장 먼저 완료된 Promise의 결과를 반환하므로, 이 경우 "Promise 3 rejected"가 출력됩니다. 사용 사례 1. 타임아웃 처리 : 비동기 작업이 특정 시간 내에 완료되지 않으면 타임아웃을 발생시키는 경우에 유용합니다. ```javascript const fetchData = new Promise((resolve, reject) => { // 데이터 가져오기 로직 }); const timeout = new Promise((resolve, reject) => { setTimeout(() => reject('Request timed out'), 5000); }); Promise.race([fetchData, timeout]) .then(data => console.log(data)) .catch(error => console.error(error)); ``` 2. 여러 API 호출 : 여러 API 호출 중에서 가장 빠른 응답을 받아야 할 때 사용할 수 있습니다. ```javascript const apiCall1 = fetch('https://api.example.com/data1'); const apiCall2 = fetch('https://api.example.com/data2'); Promise.race([apiCall1, apiCall2]) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error)); ``` 주의사항 - `Promise.race()`는 가장 먼저 완료된 Promise의 결과만 반환하므로, 나머지 Promise의 결과는 무시됩니다. 따라서 여러 Promise의 결과를 모두 처리해야 하는 경우에는 `Promise.all()`을 사용하는 것이 더 적합합니다. - Promise가 거부된 경우, `Promise.race()`는 즉시 거부된 Promise의 에러를 반환하므로, 에러 처리를 적절히 해주어야 합니다. 결론 `Promise.race()`는 비동기 프로그래밍에서 여러 Promise 중 가장 먼저 완료된 Promise의 결과를 얻고자 할 때 매우 유용한 메서드입니다. 이를 통해 타임아웃 처리, 여러 API 호출의 응답 처리 등 다양한 상황에서 효율적으로 비동기 작업을 관리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기