2015-08-26 3 views
0

У меня есть несколько функций, которые говорят functionOne, callFunctionTwo, callFunctionThree. от функцииOne, он должен выполнить callFunctionTwo(). после этого нужно запустить функцию callFunctionThree(). например: -Предотвращение асинхронных вызовов функций javascript (несколько функций один за другим)

function functionOne(mapingid) 
{ 
callFunctionTwo(mapingid); 
callFunctionThree(mapingid); 
} 

В Javascript асинхронный, я использовал SetTimeout(). нравится: -

function functionOne(mapingid) 
{ 
callFunctionTwo(mapingid); 
} 
function callFunctionTwo(mapingid) 
{ 
//some code 
setTimeout(function() { callFunctionThree(mapingid); }, 100); 
} 

function callFunctionThree(mapingid) 
{ 
//some code 
} 

этот код работает отлично несколько раз. Итак, как реализовать done(), когда(), then() функции для решения этой проблемы?

+0

См. Документы: http://api.jquery.com/jquery.when – Jai

+0

Что именно является асинхронным в вашем '// некотором коде '? Если это не так, нет смысла использовать обещания или таймауты. Пожалуйста, покажите нам этот код. – Bergi

ответ

0

Использование jQuery.when().done() таким образом:

jQuery.when(firstAjax, secondAjax).done(function(firstAjaxdata, secondAjaxdata){ 
    console.log('firstAjaxdata:::', firstAjaxdata); 
    console.log('secondAjaxdata:::', secondAjaxdata); 
}); 

где firstAjax, secondAjax должны быть Ajax звонки.