等待功能完成

时间:2012-10-27 12:09:50

标签: javascript

我有2个功能。第二个比第一个更快,函数如何等待完成第一个工作?

function1(); // slow 

function2(); // fast

4 个答案:

答案 0 :(得分:4)

JavaScript是命令式和单线程的,它只是工作。 <{1}}完成之前function2()才会开始。

如果通过 slow 你的意思是通过AJAX异步调用一些外部服务,那么我们正在谈论。 function1()必须提供某种回调,以便在异步请求完成时调用function1()

function2()

实施是微不足道的,例如使用jQuery:

function1(function2);

答案 1 :(得分:1)

您必须使用某些AJAX请求。所以,在ajax完成后调用回调函数如:

function1 = new function(callback) {
    $.ajax({...}).done(callback());
}

function1(function2);

答案 2 :(得分:1)

如果要异步调用函数,除了明显的回调方法之外,它们的排序可以基于事件框架。您可以添加一个事件监听器,其中function1作为处理程序,并在function2中触发该事件。

答案 3 :(得分:-1)

如果你的呼叫功能接着另一个,那么它将完成第一个功能,无论是慢速还是快速。