以正确的顺序触发查询/ javascript函数

时间:2012-05-16 14:03:15

标签: javascript jquery function

这是一个简单的问题,但我只看到过一个复杂的具体例子。

我想按顺序运行三个函数,一个函数完成上一个函数。

f1();
f2();
f3();

我真的很难用javascript(/ jquery)做什么?!即使我将f1定义为:

function f1(){
f1s normal code;
f2();
}

在f1完成工作之前它仍然会启动f2。我试过.whens和.done或.thens。我已经尝试使回调函数取得一些成功。但是,如果有人能够干净地回答这个简单的例子,那么我将非常了解这一点。 提前谢谢!

3 个答案:

答案 0 :(得分:2)

只要在3种方法的主体中没有运行异步代码,它们将始终按顺序运行。如果您有异步代码(即ajax调用),那么您将需要使用回调方法。

答案 1 :(得分:0)

你需要使用回调,这可能有帮助吗?

http://jsfiddle.net/2heHs/

另请参阅:https://github.com/leesherwood/jquery-function-stack

这是我在github上搞砸的东西。它并不是真的只供所有人使用,因为我主要需要私人项目。但是如果你能理解它,那么随意使用它。当我有时间的时候,我会把它变得更清洁并添加更多的东西。当然你需要使用jquery来使用它。

答案 2 :(得分:0)

javascript本质上是单线程和顺序的。解决这个问题的唯一方法是ajax和html5工作者。

话虽如此,如果你想按顺序运行三个单独的函数,javascript本质上是这样做的:

var func1 = function () {
    console.log('func1 ran');
};
var func2 = function () {
    console.log('func2 ran');
};
var func3 = function () {
    console.log('func3 ran');
};

// run them in order
func1();
func2();
func3();

http://jsfiddle.net/jbabey/cxxLY/