promise.all 인자

박경준·2023년 3월 14일
0

Promise.all()의 인자에는 당연히 promise 객체가 들어가야 한다.
funcs의 함수들을 호출하는 과정에서 각 함수는 promise를 return해줘야 함.
근데 api들을 실행만 했음.
이러면 Promise.all()의 response로 빈배열이 나왔을것.
promise.all의 인자를 함수로 감싸고 싶을때에는 return을 꼭 해주자

const revokeToken = () => {
  // 기존 코드
  // $mydataApi.post(`/revokeToken`, params);
  return $mydataApi.post(`/revokeToken`, params);
};

const deleteContract = () => {
  // 기존 코드
  // $heartApi.delete(`/heart/v1.3/mydata/insurance/contracts/org-codes/${org_code.value}`);
  return $heartApi.delete(`/heart/v1.3/mydata/insurance/contracts/org-codes/${org_code.value}`);
};

const disagreeMydata = () => {
  // 기존 코드
  // $heartApi.post(`/heart/v1.3/mydata/insurance/disagree`);
  // postOptIns(['mydata_agreement_app_1'], { value: 'N' });
  return Promise.all([$heartApi.post(`/heart/v1.3/mydata/insurance/disagree`), postOptIns(['mydata_agreement_app_1'], { value: 'N' })]);
};

const handleRevoke = async () => {
  const funcs = [revokeToken(), deleteContract()];
  if (route.query.isLastItem === 'true') {
    funcs.push(disagreeMydata());
  }

  try {
    await Promise.all(funcs);
    isRevokeConfirmModalVisible.value = false;
  } catch (error) {
    console.log(error);
  }
};
profile
빠굥

0개의 댓글