⊗jsSpPrmAr 170 of 294 menu

JavaScript에서 프로미스 배열 작업하기

지금은 프로미스 배열을 작업할 수 있게 해주는 두 가지 유용한 메서드를 살펴보겠습니다. Promise.all 메서드는 배열 형태로 전달된 모든 프로미스가 종료된 후 코드를 실행하도록 하고, Promise.race 메서드는 배열에서 첫 번째 프로미스가 로드될 때까지 기다리며 나머지는 버립니다.

두 메서드 모두 결과로 새로운 프로미스를 반환합니다. Promise.all 메서드의 경우, 이 프로미스의 결과는 전달된 모든 프로미스의 결과 배열이 됩니다(결과의 순서는 배열 내 프로미스의 순서와 일치함). Promise.race의 경우, 첫 번째 실행된 프로미스의 결과가 됩니다.

실제로 살펴보겠습니다. 프로미스 배열이 있다고 가정합시다:

let promises = [ new Promise(resolve => setTimeout(() => resolve(1), 1000)), new Promise(resolve => setTimeout(() => resolve(2), 2000)), new Promise(resolve => setTimeout(() => resolve(3), 3000)), ];

Promise.all를 사용하여 우리 배열의 모든 프로미스 로드가 완료될 때까지 기다려봅시다:

Promise.all(promises).then(function(res) { console.log(res); // 모든 프로미스의 결과인 [1, 2, 3]을 출력합니다. });

이제 Promise.race를 사용하여 프로미스 중 첫 번째 로드가 완료될 때까지 기다려봅시다:

Promise.race(promises).then(function(res) { console.log(res); // 첫 번째 실행된 프로미스의 결과인 1을 출력합니다. });

배열의 프로미스 중 하나라도 거부되면, 결과 프로미스는 즉시 rejected 상태로 전환됩니다. 따라서 발생한 예외는 여러분이 이미 배운 일반적인 방법, 예를 들어 catch를 통해 잡을 수 있습니다:

Promise.all(promises).then(function(res) { console.log(res); }).catch(function(err) { console.log(err); });

프로미스를 반환하는 함수를 만드세요. 함수 내부에는 1초에서 10초 사이의 임의 지연이 설정되어야 합니다. 프로미스는 결과로 이 지연 시간을 반환해야 합니다. 반복문과 여러분의 함수를 사용하여 배열을 10개의 프로미스로 채우세요.

이전 작업의 프로미스 배열을 사용하여 콘솔에 첫 번째로 실행된 프로미스의 결과가 출력되도록 하세요.

이전 작업의 프로미스 배열을 사용하여 콘솔에 모든 프로미스 결과의 합계가 출력되도록 하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부