2016-07-20 2 views
0

지금은 setInterval을 사용하고 있지만 setTimeout을 사용하고 싶습니다.함수를 setTimeout으로 변환하는 방법

$.when(
      data['layout'] = "getMessages", 
      data['limit'] = limit, 
      fetchMsg(data,'[data-messages]',{"background-color":"#fff"}) 
     ).then(

      setInterval(function(){ 
       data['lastupdate'] = localStorage.lastupdate; 
       data['layout'] = "getNewMessages", 
       fetchMsg(data, '[data-body-new]',{"background-color":"#b4eeb4"}); 

      }, 1000) 
     ); 

// 기능

function fetchMsg(info, container, messageStyle){ 
      $.ajax({ 

       method: "POST", 
       url: window.root+"/index.php", 
       "data": info, 
       error: function() { 
       alert('error'); 
       }, 
       success: function(result) { 
        .......... 
       } 
       }); 

나는 다음 시도했지만 작동하지 않습니다

setTimeout(function(){ 
    data['lastupdate'] = localStorage.lastupdate; 
    data['layout'] = "getNewMessages", 
    fetchMsg(data, '[data-body-new]',{"background-color":"#b4eeb4"});     
}, 1000) 

// 기능을

function fetchMsg(info, container, messageStyle){ 
       $.ajax({ 

        method: "POST", 
        url: window.root+"/index.php", 
        "data": info, 
        error: function() { 
        alert('error'); 
        }, 
        success: function(result) { 
         .......... 
        }, 
        complete:fetchMsg 
        }); 
+5

코드가하는 일을 간단히 설명해 주시겠습니까? "[나는] setTimeout을 사용하고 싶다."* 왜 * *가 없는지 * 왜 *; 좀 더 많은 내용이 우리가 당신을 도울 때 도움이 될 것입니다. – nnnnnn

+0

깨진 코드는 해당 코드가 수행 할 것으로 예상되는 것에 대한 적절한 설명 대신 좋은 대안이 아닙니다. – charlietfl

+0

@nnnnnn setTimeout은 x 초 후에 한 번 요청을 보내고 setInterval은 x 초의 간격으로 만듭니다. 페이지를 새로 고침하고 싶을 때 오류를 알려줍니다. – 112233

답변

0

코드를 수정하지는 않겠지 만 여기에서 간격으로 setTimeout으로 이동하는 기본적인 아이디어가 있습니다.

먼저 '간격'을 변수로 설정하십시오. 당신이 변화를 만들고 싶어 할 때

var init = setInterval(doFunc,1000);

나중에 :

clearInterval(init);

를 다음 시간 제한을 설정하는 바로 수행

setTimeout(doFunc);

그리고 그게 전부 기본적으로는.

관련 문제