Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中先调用函数,然后再调用第二个函数_Javascript_Jquery_Ajax_Callback - Fatal编程技术网

如何在javascript中先调用函数,然后再调用第二个函数

如何在javascript中先调用函数,然后再调用第二个函数,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我想先调用checkifpresentationactiveprojlib函数,然后调用checkifpresentationclosedprojlib函数。如何实现这一点 checkifPresentInActiveProjLib(function(flgAc) { if (flgAc === "active_found") // do something $.ajax(...); // ajax call }); checkifPresentInClose

我想先调用
checkifpresentationactiveprojlib
函数,然后调用
checkifpresentationclosedprojlib
函数。如何实现这一点

checkifPresentInActiveProjLib(function(flgAc) {
    if (flgAc === "active_found")
        // do something

    $.ajax(...); // ajax call
});

checkifPresentInClosedProjLib(function(flgCl) {
    if (flgCl === "closed_found")
        // do something

    $.ajax(...); // ajax call
});

只是使用承诺来处理异步的事情。您需要修改您的
checkifpresentativeprojlib
以返回承诺,在这种情况下,您的承诺是
$.ajax(…)所以您可以
返回$.ajax(…)
然后只需按以下方式调用下一个func:

 checkifPresentInActiveProjLib(...)
.then(function() { 
      checkifPresentInClosedProjLib(args)
})

只是使用承诺来处理异步的事情。您需要修改您的
checkifpresentativeprojlib
以返回承诺,在这种情况下,您的承诺是
$.ajax(…)所以您可以
返回$.ajax(…)
然后只需按以下方式调用下一个func:

 checkifPresentInActiveProjLib(...)
.then(function() { 
      checkifPresentInClosedProjLib(args)
})

您可以使用javascript
Promise
object

  function  checkifPresentInActiveProjLib(flgAc) {
    if (flgAc === "active_found")
        alert('active_found');
};

function checkifPresentInClosedProjLib(flgCl) {
    if (flgCl === "closed_found")
        alert('closed_found');
};

function makeAjaxCall(){
   var promiseObj = new Promise(function(resolve, reject){
         resolve(checkifPresentInActiveProjLib());
   });
 return promiseObj;
}

 makeAjaxCall().then(checkifPresentInClosedProjLib());

您可以使用javascript
Promise
object

  function  checkifPresentInActiveProjLib(flgAc) {
    if (flgAc === "active_found")
        alert('active_found');
};

function checkifPresentInClosedProjLib(flgCl) {
    if (flgCl === "closed_found")
        alert('closed_found');
};

function makeAjaxCall(){
   var promiseObj = new Promise(function(resolve, reject){
         resolve(checkifPresentInActiveProjLib());
   });
 return promiseObj;
}

 makeAjaxCall().then(checkifPresentInClosedProjLib());

这两个函数中都有异步ajax调用。如果要在第一个函数完成后调用第二个函数,则需要等待第一个函数完成

您只需在第一个函数的ajax函数部分的响应部分中调用第二个函数即可

checkifPresentInActiveProjLib(function(flgAc) {
    if (flgAc === "active_found")
        // do something

    $.ajax(...).done(function( data ) {
    // call second function here
  }););
});
或者你可以使用承诺:

checkifPresentInActiveProjLib(function (flgAc) {
    return new Promise(function (resolve, reject) {
        if (flgAc === 'active_found')
        // do something
        $.ajax(...)
                .done(function (data) {
                  if (data) resolve(data);
                })
                .fail(function (err) {
                  reject(err);
                });
    });
});
然后调用以下函数:

checkifPresentInActiveProjLib(...).then(data => checkifPresentInClosedProjLib(...)

这两个函数中都有异步ajax调用。如果要在第一个函数完成后调用第二个函数,则需要等待第一个函数完成

您只需在第一个函数的ajax函数部分的响应部分中调用第二个函数即可

checkifPresentInActiveProjLib(function(flgAc) {
    if (flgAc === "active_found")
        // do something

    $.ajax(...).done(function( data ) {
    // call second function here
  }););
});
或者你可以使用承诺:

checkifPresentInActiveProjLib(function (flgAc) {
    return new Promise(function (resolve, reject) {
        if (flgAc === 'active_found')
        // do something
        $.ajax(...)
                .done(function (data) {
                  if (data) resolve(data);
                })
                .fail(function (err) {
                  reject(err);
                });
    });
});
然后调用以下函数:

checkifPresentInActiveProjLib(...).then(data => checkifPresentInClosedProjLib(...)

wait checkifpresentationactiveprojlib()可以吗?在您的示例中,它们一个接一个地被调用。你是说在第一个ajax调用之后吗?是的。。这两个函数(checkifPresentInActiveProjLib和checkifPresentInClosedProjLib)存在于单击按钮后调用的函数中。我希望在完成checkifPresentInActiveProjLib()的ajax调用后,它应该调用checkifPresentInClosedProjLib()您可以使用async await来实现此await CheckIfPresentActiveProjlib()功能?在您的示例中,它们被一个接一个地调用。你是说在第一个ajax调用之后吗?是的。。这两个函数(checkifPresentInActiveProjLib和checkifPresentInClosedProjLib)存在于单击按钮后调用的函数中。我希望在完成checkifPresentInActiveProjLib()的ajax调用后,它应该调用checkifPresentInClosedProjLib()您可以使用async Wait来实现this@programtreasures-此解决方案是否完整。我们是否解决并拒绝促销?我收到错误:checkifPresentInActiveProjLib未定义,checkifPresentInClosedProjLib未定义请立即检查,并在适当的函数中调用您的ajax。您能详细解释一下吗?语法有一些问题。这段代码非常有用。非常感谢您的帮助。非常感谢…-)@programtreasures-这个解决方案完成了吗?我们不解决并拒绝推广吗?我收到错误:CheckIfPresentActiveProjlib未定义和checkifPresentInClosedProjLib未定义请立即检查,并在相应的函数中调用ajax。您可以详细解释吗?语法有一些问题。此代码非常有用。非常感谢您的帮助。非常感谢..-)