这是一个简单的问题,但我只看到过一个复杂的具体例子。
我想按顺序运行三个函数,一个函数完成上一个函数。
f1();
f2();
f3();
我真的很难用javascript(/ jquery)做什么?!即使我将f1定义为:
function f1(){
f1s normal code;
f2();
}
在f1完成工作之前它仍然会启动f2。我试过.whens和.done或.thens。我已经尝试使回调函数取得一些成功。但是,如果有人能够干净地回答这个简单的例子,那么我将非常了解这一点。 提前谢谢!
答案 0 :(得分:2)
只要在3种方法的主体中没有运行异步代码,它们将始终按顺序运行。如果您有异步代码(即ajax调用),那么您将需要使用回调方法。
答案 1 :(得分:0)
你需要使用回调,这可能有帮助吗?
另请参阅: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();