2012-06-29 69 views
0

我有一段JavaScript代碼做如何保證所有的異步調用回到了JavaScript的

function asyncs(){ 
    var backCount = 0; 
    function done(){ 
     if(backCount === 2){ 
      alert("All done"); 
      doSomthingUseful(); 
     }else{ 
      backCount ++; 
     } 
    } 
    function asyncCall(callBack){ 
     myRemoteCall(callBack); 
    } 
    asyncCall(done); 
    asyncCall(done); 
    asyncCall(done); 
} 

function doSomethingUseful(){ 
    alert("Travel to the moon.") 
} 

這是工作的。但我想知道是否有更好的方法,以便我不必編寫這個難看的計數器函數。

回答

0

我推薦使用流量控制庫,如asyncNimble來處理這類事情。在內部它幾乎是一樣的東西,但它給你他們在可重用的模式。

+0

謝謝。似乎做我想做的事,但我認爲這有點過分殺人。我會繼續尋找。 –

+0

@WeiMa如果您正在尋找更輕的解決方案,我會推薦[Nimble](http://caolan.github.com/nimble/),它具有相似的功能,但體積更小。 – Trevor

+0

謝謝。我將使用其中一個庫。 –