2012-02-29 64 views
0

我有2個腳本同步JavaScript調用

script1 = function() { 
    // takes very long time 
} 

script2 = function() { 
    // takes less time 
} 

我想確保SCRIPT2應該運行SCRIPT1完成後。

+1

那麼,有沒有從'SCRIPT1()'結束調用'SCRIPT2()'的問題嗎? – nnnnnn 2012-02-29 05:50:12

+0

'script1'是否異步? – icktoofay 2012-02-29 05:52:59

回答

3

把你SCRIPT2到SCRIPT1。或者對於更一般的解決方案,使script1函數接收回調函數(script2)並調用它。

這是很多很多的jQuery異步功能

script1 = function(callback){ 
     //takes very long time 
     callback(); 
} 


script2 = function(){ 
     //takes less time 
} 
... 
//call like this 
script1(script2); 
+0

感謝主銷我會嘗試這 – Allwyn 2012-02-29 06:05:27

+0

我可以在不修改這兩個功能的第三功能實現這一????? – Allwyn 2012-02-29 07:09:41

+0

@Allwyn我不這麼認爲 – kingpin 2012-02-29 07:35:26

0

我做什麼之前設置一個全局布爾變量,只有它在SCRIPT1到底分配給正確的,在SCRIPT2,檢查的方式如果它不是真的,則使用setTimeOut稍後調用它自己。我知道這聽起來不是一個好的解決方案,但這是我意識到我可以做的。

+0

雖然,這可能工作,它通常被認爲窮人的做法輪詢這樣,當傳統的回調是在這種情況下,充足的。 – 2012-02-29 05:53:15

+0

感謝您的答覆是的,我做了同樣的西蒙,但我想有沒有其他的解決辦法 – Allwyn 2012-02-29 06:03:35