2015-06-09 17 views
-1

我有這樣的代碼:如何重寫簡單的if-then從同步到異步?

if (condition) { 
    syncAjax(); 
} 
callAfterAjaxOnlyOnce(); 

,我想重寫asyncAjax()。但是,當conditionfalse因爲callAfterAjaxOnlyOnce()將0時執行,這是不行的

if (condition) { 
    asyncAjax(callback(){callAfterAjaxOnlyOnce();}); 
} 

。這也是不好的

if (condition) { 
    asyncAjax(callback(){callAfterAjaxOnlyOnce();}); 
} 
callAfterAjaxOnlyOnce(); 

conditiontrue因爲callAfterAjaxOnlyOnce()將被執行兩次。如果我做

asyncAjax(callback(){ 
    if (condition) { 
     callAfterAjaxOnlyOnce(); 
    } 
}); 

這是不是與原來的代碼相同,因爲我想只有在情況下執行asyncAjaxcondition是真實的。

它甚至有可能重寫這個以完全平等的功能嗎?

回答

1

在if語句中使用return,以便在條件爲真時不會執行任何操作。

if (condition) { 
    return asyncAjax(callAfterAjaxOnlyOnce); 
} 
callAfterAjaxOnlyOnce();