라이브러리
[JAVASCRIPT] Promise.any(promises) - 하나라도 성공하면 해당 결과 반환, 모두 실패하면 에러 반환
Promise.any(promises) 소개
Promise.any()는 JavaScript의 Promise API 중 하나로, 여러 Promise를 전달받아 첫 번째로 resolve된 Promise를 반환합니다. 만약 전달받은 모든 Promise가 reject되면, Promise.any()도 reject됩니다.
Promise.any(promises) 사용법
Promise.any()는 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
javascript
Promise.any(promises).then((value) => {
// 첫 번째로 resolve된 Promise의 값
}).catch((error) => {
// 전달받은 모든 Promise가 reject된 경우
});
예제 1: Promise.any() 사용하기
다음은 Promise.any()를 사용하는 간단한 예제입니다.
#hostingforum.kr
javascript
// Promise.any() 예제
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3');
}, 3000);
});
Promise.any([promise1, promise2, promise3]).then((value) => {
console.log(value); // Promise 1
}).catch((error) => {
console.error(error); // Promise 2
});
예제 2: Promise.any() 사용하기 (전체 Promise가 reject된 경우)
다음은 Promise.any()를 사용하는 예제 중 하나입니다.
#hostingforum.kr
javascript
// Promise.any() 예제 (전체 Promise가 reject된 경우)
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 3');
}, 3000);
});
Promise.any([promise1, promise2, promise3]).then((value) => {
console.log(value); // Promise.any()는 전달받은 모든 Promise가 reject된 경우 reject됩니다.
}).catch((error) => {
console.error(error); // Promise 1, Promise 2, Promise 3
});
예제 3: Promise.any() 사용하기 (Promise.all()과 비교)
다음은 Promise.any()를 사용하는 예제 중 하나입니다. Promise.any()와 Promise.all()를 비교합니다.
#hostingforum.kr
javascript
// Promise.any() 예제 (Promise.all()과 비교)
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Promise 2');
}, 2000);
});
const promise3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Promise 3');
}, 3000);
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values); // Promise 1, Promise 3
}).catch((error) => {
console.error(error); // Promise 2
});
Promise.any([promise1, promise2, promise3]).then((value) => {
console.log(value); // Promise 1
}).catch((error) => {
console.error(error); // Promise 2
});
Promise.any()는 Promise.all()와 다르게, 첫 번째로 resolve된 Promise의 값을 반환합니다. 만약 전달받은 모든 Promise가 reject되면, Promise.any()도 reject됩니다.
댓글목록
등록된 댓글이 없습니다.