[Javascript ] Promise All

2020. 4. 6. 18:00STUDY/WEB

자주 검색 하는 것

Promise All

 

 

Dashboard 개발 중  2개이상의 API 요청이 있을 경우

하나가 완료되면 또한번 호출하는 방식은 시간소요가 많음

ex) apiFunc1 (3초) > apiFunc2(5초) >> 총 8초 소요

 

Promise All 의 경우 2개이상의 API 를 호출하여 제일 마지막에 응답이 오면 진행

ex) apiFunc1 (3초), apiFunc2(5초) >> 총 5초 소요

 

//비동기처리함수
function apiFunc1(){
  return new Promise((resolve, reject) => {
    ...
  })
}
//비동기처리함수
function apiFunc2(){
  return new Promise((resolve, reject) => {
      ...
  })
}

const promise1 = apiFunc1(); 
const promise2 = apiFunc2();

//기본
Promise.all([promise1, promise2]).then((values) => {
  console.log(values[0]); // const promise1 = apiFunc1(); 결과
  console.log(values[1]); // const promise1 = apiFunc1(); 결과
}).catch((err) => {
   /*
   에러 처리
   둘중 하나라도 에러가 나오면 처리해준다.
   */
});;

//에러 사전 처리
Promise.all([promise1.catch(err=>{return error}), promise2.catch(err=>{return error})]).then((values) => {
  console.log(values[0]); // const promise1 = apiFunc1(); 결과
  console.log(values[1]); // const promise1 = apiFunc1(); 결과
})

'STUDY > WEB' 카테고리의 다른 글

[Vue.js] 로그인 여부 확인  (0) 2020.03.27
[Javascript/jQuery] 문자열 공백체크, 공백제거  (0) 2020.03.04
Git 다운로드  (0) 2020.01.02