Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 让js函数一个接一个地执行_Javascript_Ajax_Synchronization - Fatal编程技术网

Javascript 让js函数一个接一个地执行

Javascript 让js函数一个接一个地执行,javascript,ajax,synchronization,Javascript,Ajax,Synchronization,注:无jQuery 我有四个函数,我想一个接一个地调用它们,即在执行之前调用的函数后调用函数(在CoreJS中,而不是jquery中)。我试着在网上搜索,但找不到满意的答案。以下是我迄今为止所做的工作: function func1() { noAjaxCall.click(); return true; } function func2() { ajaxCall.click(); <--------- sending an ajax requ

注:无jQuery

我有四个函数,我想一个接一个地调用它们,即在执行之前调用的函数后调用函数(在CoreJS中,而不是jquery中)。我试着在网上搜索,但找不到满意的答案。以下是我迄今为止所做的工作:

function func1() {
    noAjaxCall.click();
    return true;
}

function func2() {
    ajaxCall.click();           <--------- sending an ajax request
    return true;
}

function func3() {
    noAjaxCall.click();
    return true;
}

function func4() {
    //anything here
}

if(func1())
    if(func2())
        if(func3())
            func4();
函数func1(){
noAjaxCall.click();
返回true;
}
函数func2(){

ajaxCall.click();我肯定你没有做到你所期望的。 当调用func3时,AjaxCall并没有真正完成,因为它是异步的

我宁愿你找到真正的解决办法(你真正想做的事),而不是试图解决这个问题

你能给出你想要达到的真正目标吗

编辑

让我们为ajaxCall在“单击”上设置句柄。我知道应用程序上没有jQuery,但我创建了我所知道的

function requester(){
    //do some asyn work
    $.ajax({ //...
        success: function() {
            //HERE call the other functions
        }
    });
}

从仅仅触发点击开始,没有太多的等待,你应该调用实际的函数并返回一个承诺,而不是触发点击,或者如果你使用像jQuery这样的库,你可以破解它并钩住全局ajax事件。是的,我注意到了这一点;我在这里没有使用jQuery!好吧,询问解决方法超出了o原始问题!谢谢:)我已经编辑过了,但您应该阅读JS中的异步回调:)