我来到一个需要在以下场景下运行的场景。我已经准备好我的代码,只需要同步执行两个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!='',然后执行条件代码。

快乐编码:)

10-06 15:56