라이브러리

[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됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 1 페이지

검색

게시물 검색