개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.25 15:02

Promise.all(promises) 사용법에 대한 도움을 필요로 합니다.

목록
  • Lisp전문가 25일 전 2025.06.25 15:02
  • 97
    1
제가 Promise.all(promises) 함수를 사용하여 여러 개의 Promise를 동시에 처리할 수 있습니다. 하지만, 어떤 Promise가 실패하면 모든 Promise가 실패하는 것을 알게되었습니다.

여기서 궁금한 점은, 어떤 Promise가 실패하면 어떻게 처리할 수 있는지 궁금합니다.

예를 들어, 다음과 같은 코드가 있습니다.

javascript

const promise1 = new Promise((resolve, reject) => {

  setTimeout(() => {

    resolve('Promise1 성공');

  }, 2000);

});



const promise2 = new Promise((resolve, reject) => {

  setTimeout(() => {

    reject('Promise2 실패');

  }, 1000);

});



Promise.all([promise1, promise2])

  .then((결과) => {

    console.log(결과);

  })

  .catch((에러) => {

    console.log(에러);

  });



여기서 promise2가 실패하면 어떻게 처리할 수 있는지 알려주세요.

또한, Promise.allSettled() 함수를 사용하여 모든 Promise가 처리될 때까지 기다리면 어떻게 되는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  25일 전



    Promise.all(promises) 함수를 사용할 때, 어떤 Promise가 실패하면 모든 Promise가 실패하는 것을 알 수 있습니다. 이 경우, 실패한 Promise의 에러를 처리할 수 있습니다.

    Promise.all(promises) 함수는 then() 메소드와 catch() 메소드를 모두 호출합니다. catch() 메소드는 Promise.all(promises) 함수가 실패할 때 호출됩니다. 따라서, 어떤 Promise가 실패하면 catch() 메소드 내의 코드를 실행할 수 있습니다.

    예를 들어, 다음과 같은 코드를 살펴보겠습니다.

    #hostingforum.kr
    javascript
    
    const promise1 = new Promise((resolve, reject) => {
    
      setTimeout(() => {
    
        resolve('Promise1 성공');
    
      }, 2000);
    
    });
    
    
    
    const promise2 = new Promise((resolve, reject) => {
    
      setTimeout(() => {
    
        reject('Promise2 실패');
    
      }, 1000);
    
    });
    
    
    
    Promise.all([promise1, promise2])
    
      .then((결과) => {
    
        console.log(결과);
    
      })
    
      .catch((에러) => {
    
        console.log(에러); // Promise2 실패
    
      });
    
    


    Promise.allSettled() 함수를 사용하면 모든 Promise가 처리될 때까지 기다립니다. 이 함수는 then() 메소드를 호출하여 모든 Promise의 결과를 반환합니다.

    Promise.allSettled() 함수는 then() 메소드에 두 개의 인수를 전달합니다. 첫 번째 인수는 Promise.allSettled() 함수의 결과를 반환하는 함수입니다. 두 번째 인수는 Promise.allSettled() 함수가 실패할 때 호출되는 함수입니다.

    예를 들어, 다음과 같은 코드를 살펴보겠습니다.

    #hostingforum.kr
    javascript
    
    const promise1 = new Promise((resolve, reject) => {
    
      setTimeout(() => {
    
        resolve('Promise1 성공');
    
      }, 2000);
    
    });
    
    
    
    const promise2 = new Promise((resolve, reject) => {
    
      setTimeout(() => {
    
        reject('Promise2 실패');
    
      }, 1000);
    
    });
    
    
    
    Promise.allSettled([promise1, promise2])
    
      .then((결과) => {
    
        console.log(결과);
    
      })
    
      .catch((에러) => {
    
        console.log(에러);
    
      });
    
    


    Promise.allSettled() 함수의 결과는 다음과 같습니다.

    #hostingforum.kr
    javascript
    
    [
    
      { status: 'fulfilled', value: 'Promise1 성공' },
    
      { status: 'rejected', reason: 'Promise2 실패' }
    
    ]
    
    


    Promise.allSettled() 함수를 사용하면 모든 Promise가 처리될 때까지 기다리고, 모든 Promise의 결과를 반환할 수 있습니다.

    2025-06-25 15:03

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,601건 / 73 페이지

검색

게시물 검색