2015-07-01 3 views
0

У меня есть функция javascript, которая выполняется, и после выполнения я хочу подождать 2 секунды. Возможно ли это в Javascript или нет.Как подождать (на 2 секунды) после завершения функции?

Мой вопрос другой. Я хочу ждать, когда функция будет выполнена или завершит ее выполнение, пока она не будет выполняться.

функция Java-

function ajax_closeCall(onDone) { 
    // alert("Close Call invoked."); 
    closeCall_onDone = onDone; 
    var closeCallUrl = soapUrl + "?action=closeCall&parentSessionId=" + parentSessionId; 
    closeCall_http_request = getNewHttpRequest('text/plain'); 
    closeCall_http_request.onreadystatechange = callback_ajax_closeCall; 
    // http_request.open("POST", soapUrl, true); 
    closeCall_http_request.open("GET", closeCallUrl, true); 
    closeCall_http_request.send(null); 
} 


function callback_ajax_closeCall() { 
    if (closeCall_http_request.readyState != 4) { 
     return; 
    } 

    if (closeCall_http_request.status == 200) { 
     if (closeCall_onDone) { 
      closeCall_onDone(); 
     } 
     stopMonitorCallState(); 
     ajax_getCallState(); 
    } else { 
     // there was a problem with the request, 
     // for example the response may be a 404 (Not Found) 
     // or 500 (Internal Server Error) response codes 
     alert(getLabel("cmmm_error_closecallfailed")); 
    } 
} 

После того, как данная функция выполняется, подождите 2 секунды. Как достичь этого сценария.

+0

После чего из двух функций вы хотите " пауза " –

+4

http: // sta ckoverflow.com/questions/758688/sleep-in-javascript –

+0

использовать setTimeout (функция() {// ждать 2 секунды, ничего не делать}, 2000); – Newinjava

ответ

3

Вы перенесите код в SetTimeout:

setTimeout(function() { 
    // do your thing! 
}, 2000); 
+0

Метод setTimeout() вызывает функцию или оценивает выражение после заданного количества миллисекунд. Я прав ? –

+0

Правильно, поэтому вы хотите, чтобы ваш код запускал setTimeout после запуска первой функции и выполнял следующую логику в цикле setTimeout. –

+0

Я думаю, что поведение меняется в разных браузерах и имеет случайное поведение при применении setTimeout, в котором нет ничего общего с setTimeout. то есть он может ждать 2 секунды после выполнения функции. –

0

SetTimeout дает асинхронное время ожидания. для функции. Если вы хотите остановить все на две секунды. Вы можете использовать следующее тривиальное решение:

var date = new Date();var i; 
for (i = date.getTime(); i<= date.getTime() + 2000; i = (new Date()).getTime()){/*Do Nothing*/} 
0

есть SetTimeout функция

setTimeout(function,milliseconds,param1,param2,...) 

и вы можете также использовать функцию setInterval также setInterval (функция, миллисекунды);

0

вы можете использовать setInterval

setInterval(function(){ 
 
    // write down your function that would you want to call after 2 seconds 
 
}, 2000);

+0

он просто хочет подождать 2 секунды после того, как две функции закончат работу. он не хочет вызывать функцию через каждые 2 секунды – Newinjava

0

Попробуйте эту

вызвать функцию, а затем SetTimeout

function someFunction() //caller 
{ 
    one(); //call function one which will call second function from it 
    setTimeout(function() 
    { 
     //wait for 2 secs, do nothing 
    }, 2000); 
} 

// two functions after which you want to wait for 2 secs 
function one() 
{ 
    two(); //it will call the second function 
} 

function two() 
{ 
} 
Смежные вопросы