개발자 Q&A

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

2025.03.29 06:08

Promise.race(promises) 이해를 부탁드립니다.

목록
  • NestJS전문가 3일 전 2025.03.29 06:08
  • 2
    1
제가 Promise.race(promises) 함수를 사용하려고 하는데 이해가 잘 안 가는 부분이 있습니다.

Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

다만, 제게 궁금한 점은 여러 개의 Promise가 동시에 실행되고, 가장 먼저 resolved되는 Promise의 결과를 반환하는 것이 정확한지 궁금합니다.

Promise.race(promises) 함수는 여러 개의 Promise가 동시에 실행되는 것을 보장하는지 궁금합니다.

또한, 만약 여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, 어떤 결과를 반환하는지 궁금합니다.

제가 이해하는 바에 따르면, Promise.race(promises)는 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하므로, 여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환하는 것으로 추정됩니다.

그러나, 이에 대한 정확한 답을 알고 싶습니다.

Promise.race(promises) 함수의 동작을 설명해주신다면, 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

    여러 개의 Promise가 동시에 실행되는 것을 보장하는 것은 아닙니다. 각 Promise는 별개의 실행 흐름을 가지기 때문에, Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않습니다.

    여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, Promise.race(promises)는 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않기 때문에, Promise.race(promises) 함수를 사용할 때는 Promise의 실행 순서를 고려해야 합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    
    
    console.log("Promise 1 resolved"); // Promise 1 resolved
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않기 때문에, Promise.race(promises) 함수를 사용할 때는 Promise의 실행 순서를 고려해야 합니다.

    Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

    여러 개의 Promise가 동시에 실행되는 것을 보장하는 것은 아닙니다. 각 Promise는 별개의 실행 흐름을 가지기 때문에, Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않습니다.

    여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, Promise.race(promises)는 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않기 때문에, Promise.race(promises) 함수를 사용할 때는 Promise의 실행 순서를 고려해야 합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    
    
    console.log("Promise 1 resolved"); // Promise 1 resolved
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

    여러 개의 Promise가 동시에 실행되는 것을 보장하는 것은 아닙니다. 각 Promise는 별개의 실행 흐름을 가지기 때문에, Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않습니다.

    여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, Promise.race(promises)는 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않기 때문에, Promise.race(promises) 함수를 사용할 때는 Promise의 실행 순서를 고려해야 합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    
    
    console.log("Promise 1 resolved"); // Promise 1 resolved
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

    여러 개의 Promise가 동시에 실행되는 것을 보장하는 것은 아닙니다. 각 Promise는 별개의 실행 흐름을 가지기 때문에, Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않습니다.

    여러 개의 Promise가 동시에 resolved 또는 rejected되는 경우, Promise.race(promises)는 가장 먼저 resolved 또는 rejected된 Promise의 결과를 반환합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 Promise의 실행 순서에 영향을 받지 않기 때문에, Promise.race(promises) 함수를 사용할 때는 Promise의 실행 순서를 고려해야 합니다.

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

    #hostingforum.kr
    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);
    
    });
    
    
    
    Promise.race([promise1, promise2]).then((result) => {
    
      console.log(result); // Promise 2 resolved
    
    });
    
    
    
    console.log("Promise 1 resolved"); // Promise 1 resolved
    
    


    위 코드에서, promise2가 promise1보다 먼저 resolved되기 때문에, Promise.race([promise1, promise2])의 결과는 "Promise 2 resolved"입니다.

    Promise.race(promises)는 여러 개의 Promise를 동시에 실행하고, 가장 먼저 resolved 또는 rejected되는 Promise의 결과를 반환하는 함수입니다.

    여러 개의 Promise가 동시에 실행되는 것을 보장하는 것은 아닙니다. 각 Promise는 별개의 실행 흐름을 가지기 때문에, Promise.race(promises)는 Promise의 실행

    2025-03-29 06:09

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

검색

게시물 검색