-2

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

我想按顺序运行三个函数,一个在前一个完成之后。

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

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

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

它仍然会在 f1 完成工作之前启动 f2。我试过 .whens 和 .done 或 .thens。我尝试制作回调函数并取得了一些成功。但如果有人能清楚地回答这个简单的例子,那对我理解会有很大帮助。提前致谢!

4

3 回答 3

2

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

于 2012-05-16T14:05:41.393 回答
0

您需要使用回调,也许这有帮助?

http://jsfiddle.net/2heHs/

另请查看:https ://github.com/leesherwood/jquery-function-stack

这是我在 github 上找到的东西。它并不是真正打算供所有人使用,因为我主要需要它用于私人项目。但是,如果您能理解它,那么请随意使用它。当我有时间的时候,我会让它更干净,并添加更多的东西。当然,您需要使用 jquery 才能使用它。

于 2012-05-16T14:10:37.020 回答
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/

于 2012-05-16T14:16:56.243 回答