2021. 12. 1. 15:34

axios post 사용해서, 데이터 받는 부분이 있는데, 

 

다운로드 클릭후, 로딩Modal 띄우고, axios post로 데이터 받고, 닫는 프로세스인데,

 

이상하게...자꾸 로딩창이 안 없어지길래..... 계속 하는데...

 

이게, jQuery 모달 라이브러리로 모달 show 하는 시간보다, 데이터 받는 속도가 빨라서,

 

모달 뜨기전에, 벌써 다운로드까지 끝나버리는거다...

 

그래서 중간에, sleep 도 넣었는데, 안되고...

 

async await 도 썼는데.... 안되더라....ㅠㅠ

 

ajax에 있는 beforeSend 같은 axois용 인터럽트까지 썼는데..안됨.ㅠ

 

모달뜨는 시간까지 로그 찍어보니...

 

200ms 이상되는 데이터는 떴다가 사라지는데,

 

그 이하는 벌써 창 닫는거 

$('#process-modal').modal("hide");

까지 끝났는데....

이후에 show 가 먹히는거다.

 

sleep을 계속 넣어도 이게 따로 노니까... 안되고...

 

 

결국 다운로드 부분을 function으로 만들고, 

setTimeout 안에 넣어서, 200ms후에 다운로드 실행되게 돌렸다.

setTimeout(async function(){
    await excelDownload(month);
}, 200);

 

아....진짜...자바스크립트...비동기/동기.....ㅠㅠ 

엥귤러 할때도 비슷한게 있었는데....ㅠ

 

 

Posted by Tyson