防止异步javascript函数调用(一个接一个的多个函数)

时间:2015-08-26 10:32:14

标签: javascript jquery

我有多个函数说functionOne,callFunctionTwo,callFunctionThree。 从functionOne,它必须执行callFunctionTwo()。之后callFunctionThree()必须启动。 例如: -

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(),when(),then()函数来克服这个问题呢?

1 个答案:

答案 0 :(得分:0)

以这种方式使用jQuery.when().done()

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

其中firstAjax, secondAjax应该是ajax调用。