setTimeout 함수 작동 질문합니다. 채택완료

 불필요한 코드는 생략했습니다.

Copy
if ($.trim(response) == "success"){
           swal({
            title: "성공",
            text: "테스트 입니다..",
            icon: "success",
            button: "확인",
        });
             window.setTimeout(sucreload(),5000);
           }else{
            alert(response);
          }

 

현재 sweetalert 팝업창을 띄운 후 확인눌러 창을 없앤다는 가정하에 

몇초뒤에 새로고침 되게 할려고 합니다.

현재 문제는 팝업창이 뜨자마자 새로고침이 바로 되버립니다.

어떻게해야 setTimeout 함수가 적용이 될까요...

답변 1개

채택된 답변
+20 포인트

Copy
if ($.trim(response) == "success"){

swal({

title: "성공",

text: "테스트 입니다..",

icon: "success",

button: "확인",

}).then((confirm) => {

if (confirm)

window.setTimeout(sucreload(),5000);

else

alert(response);

});

}

 

alert나 confirm 함수의 경우 실행시 브라우저가 일시 중지되어 해당 이벤트가 끝나기전까진 다른 함수를 실행하지 않지만

그 외의 함수의 경우 자바스크립트 특성상 실행 중에도 다른 함수를 실행하게 됩니다.

 

자바스크립트 내에서 순차대로 실행하시려면 promise를 활용하셔야 합니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고