我有調用另一個函數2的javascript函數1我的要求是函數1不應該等待函數2的執行。從javascript函數返回而不等待被調用函數
我的函數2調用ajax,使進程延遲導致用戶等待,直到我的函數2返回。 只要function1調用function2,我是否可以從function1返回?
我有調用另一個函數2的javascript函數1我的要求是函數1不應該等待函數2的執行。從javascript函數返回而不等待被調用函數
我的函數2調用ajax,使進程延遲導致用戶等待,直到我的函數2返回。 只要function1調用function2,我是否可以從function1返回?
你可以做這樣的事情:
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(),並且「我不耐煩,等不及f1」被打印,然後當f2完全執行時,「我是f2,我終於完成了!」被打印。
使用setTimeout來調用函數2,函數將返回。 – Aravind 2014-11-22 10:28:08
實際上,如果使用它的異步版本,調用ajax不會使進程延遲。 – 2014-11-22 10:30:43
你能提供你的代碼嗎? – 2014-11-22 10:34:37