我来到一个需要在以下场景下运行的场景。我已经准备好我的代码,只需要同步执行两个javascript块即可。
var baseQuery ='test';
var mainQuery ='test';
if(baseQuery!='')
{
//Ajax call
}
if(mainQuery!='')
{
//Ajax Call
}
如果首先完成它的执行,我如何确保该块的第二个代码运行。
最佳答案
一种方法是使用promise,并在您的第一个ajax调用成功时解决它。
var defer = $.Deferred();
var baseQuery ='test';
var mainQuery ='test';
if(baseQuery!='')
{
//resolve the promise in the success of first ajax call
defer.resolve(...) // do it inside your success handler in error you can reject
}
if(mainQuery!='')
{
defer.promise().then(function(data){
//this will execute after complete of first ajax call;
})
}
您可以将逻辑放在第二个块的成功处理程序中,并在内部检查
mainQuery!=''
,然后执行条件代码。快乐编码:)