Front-End/Javascript

[javascript] setTimeout 순서!!!! (반대로 하자!)

uni2237 2021. 1. 29.
728x90
728x90

blog.naver.com/tmondev/220937034820

 

자바스크립트의 비동기 처리과정

들어가며안녕하세요. 티몬에서 이제 1년차가 된 신입 개발자입니다! 그 동안 업무를 하면서 배운 것들이 많...

blog.naver.com

 

문제 상황)

loading이미지를 띄우고 페이지를 이동시키고 싶었는데

아무리 setTimeout을 설정해도 내가 생각했던 것과 같이 동작이 되지 않음..

 

구글링을 계속 해보다 위 블로그를 발견하고 드디어 해결했다 !!! ㅜㅠㅠ 

운영체제 시간에 배웠던 개념이였다... 댑악,,,

 

수정 전)

// 1번
setTimeout(function() {
	$("#loading").hide();
},5000);

// 2번
setTimeout(function() {  
	location.href = 'go_myproject_list_on';
},1000);  //밀리세컨드 단위 : 1000이 1초 입니다.

 

 나는 위와 같이 코드를 짜면 1번이 5초 후에 실행되고, 그뒤로 1초후에 2번이 실행된다고 생각했었다.

 

하지만!!!! 1번의 실행을 5초 뒤로 미뤄두었고, 그 사이 2번이 있으므로 2번때문에 1번이 실행이 안되는 것이었다!!

결과적으로 2번이 먼저 실행되고 그뒤로 1번이 실행되고 있었음 ㅜ

 

해결)

// 1번
setTimeout(function() {  
	location.href = 'go_myproject_list_on';
},1000);  //밀리세컨드 단위 : 1000이 1초 입니다.

// 2번
setTimeout(function() {
	$("#loading").hide();
},5000);

위와 같이 짜야 1번을 1초 뒤로 미룬 사이 2번이 실행되므로,

2번이 5초 뒤 실행되고 그뒤로 1초 후 1번이 실행되도록 할수 있음!!! 

 

아주아주 꿀팁이었다. ^_^

 

 

728x90
728x90

댓글