从javascript函数返回而不等待被调用的函数

时间:2014-11-22 10:26:50

标签: javascript

我有javascript function1调用另一个function2我的要求是函数1不应该等待函数2执行。

我的函数2调用ajax,这会使进程延迟,导致用户等到我的function2返回。 一旦function1调用function2,我可以从function1返回吗?

1 个答案:

答案 0 :(得分:2)

您可以这样做:

function f()
{
 f1();
 console.log("I'm impatient, can't wait for f1");
}
function f1()
{
 setTimeout(function(){f2();},0);
}
function f2()
{
 // your function which takes a long time to run
 for(var i =0;i<10000000;i++);
 console.log("I'm f2 and I'm finally done!");
}
f();

这是如何运作的?

当你调用f1()时,它有setTimeout函数。 setTimeout查看函数并将其放在事件队列中,语句完成。程序控制返回到f()和&#34;我不耐烦,不能等待f1&#34;打印,然后当f2完全执行时,&#34;我f2,我终于完成了!&#34;打印出来。