按正确顺序启动查询/javascript函数

按正确顺序启动查询/javascript函数,javascript,jquery,function,Javascript,Jquery,Function,这是一个简单的问题,但我只见过一个用复杂的具体例子来回答的问题 我想按顺序运行三个函数,一个在前一个函数完成后运行 f1(); f2(); f3(); 我真的很难用javascript(/jquery)?!即使我将f1定义为: function f1(){ f1s normal code; f2(); } 在f1完成其工作之前,它仍将启动f2。我试过了。什么时候做的,什么时候做的。我尝试了一些成功的回调函数。但如果有人能清楚地回答这个简单的例子,这将有助于我理解。 提前谢谢 只要这3个方法的

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

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

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

function f1(){
f1s normal code;
f2();
}
在f1完成其工作之前,它仍将启动f2。我试过了。什么时候做的,什么时候做的。我尝试了一些成功的回调函数。但如果有人能清楚地回答这个简单的例子,这将有助于我理解。
提前谢谢

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

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

另请看:


这是我在github上放弃的东西。它并不是真的打算让每个人都使用,因为我主要需要它用于一个私人项目。但是如果你能理解它,那么就可以随意使用它。当我有时间的时候,我会把它弄得更干净,并添加更多的东西。当然,您需要使用jquery来使用它。

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();

它不会。。。。没有使用
js
的并行编程。除非这些程序执行异步操作,否则它们将按顺序运行。即使他们做了一些异步的事情,他们也会按顺序运行,但看起来可能不是这样。我建议,因为JavaScript是单线程的,所以它应该(据我所知)在文档/脚本中找到/解析函数时,通过函数线性工作。因此,在“完成”
f1()
之前,它当然不应该执行
f2()
。如果它们正在执行异步操作,则异步调用应该有一个回调函数,在完成时启动。@jamesalardice。措辞得体!谢谢大家。它们确实包括一些ajax调用,它们还包括一些动画(我认为也可以在另一个线程上运行…),所以我可能会清理代码以使用这些回调函数。我猜有回调的函数有它们的原因,比如.animate和.post。。。再次感谢。我很想得到你,但很明显我没有这个名声!