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

时间:2014-01-05 12:37:27

标签: javascript ajax synchronization

注意:没有jQuery

我有四个功能,我想一个接一个地调用它们,即。在执行先前调用的函数之后调用函数(在核心js中,而不是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();

发生的是,func3未被调用。为什么会发生这种情况并且可以解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

我确定你没有做你期望的事。 当调用func3时,AjaxCall并没有真正完成,因为......它是异步的。

我倾向于找到真正的解决方案(你真正想做的),而不是试图解决这个问题。

你能给出你想要实现的真正目标吗?

修改

让我们想象ajaxCall的'click'句柄。我知道你在应用程序上没有jQuery,但我创建了我所知道的。

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