我們的Flex應用程序的初始化代碼正在執行一系列異步調用來檢查用戶憑據,加載外部數據,連接到JMS主題等。根據應用程序的上下文運行時,其中一些調用不會被執行或使用不同的參數執行。處理異步控制結構(Fluent接口?)
由於所有這些調用都是異步發生的,因此控制它們的代碼很難閱讀,理解,維護和測試。對於每次調用,我們都需要一些回調機制,在這種機制中我們決定接下來要執行的調用。
我想知道是否有人嘗試用可執行單元包裝這些調用,並有一個連接和控制它們的Fluent接口(FI)。
從我的頭頂,代碼可能看起來像:
var asyncChain:AsyncChain = execute(LoadSystemSettings)
.execute(LoadAppContext)
.if(IsAutologin)
.execute(AutoLogin)
.else()
.execute(ShowLoginScreen)
.etc;
asyncChain.execute();
的AsyncChain將是一個執行樹,與FI建設(我們當然也可以建立一個沒有FI) 。
這可能是在像Flash播放器,Silverlight的,JavaFX的?單線程模型運行環境的一個有趣的想法...
之前,我深入到代碼嘗試的事情了,我希望得到一些反饋。
更新19/03/2010:我們已經創造了春季ActionScript項目,提供了與異步過程控制的實驗任務API。我們很樂意獲得反饋。 http://www.springactionscript.org/docs/reference/html/the_operation_api.html#tasks